aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorAviZi <avi.ziv@amdocs.com>2017-06-09 02:39:56 +0300
committerAviZi <avi.ziv@amdocs.com>2017-06-09 02:39:56 +0300
commit280f8015d06af1f41a3ef12e8300801c7a5e0d54 (patch)
tree9c1d3978c04cd28068f02073038c936bb49ca9e0 /common
parentfd3821dad11780d33c5373d74c957c442489945e (diff)
[SDC-29] Amdocs OnBoard 1707 initial commit.
Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370 Signed-off-by: AviZi <avi.ziv@amdocs.com>
Diffstat (limited to 'common')
-rw-r--r--common/.gitignore13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml48
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Config.java21
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Configuration.java831
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationChangeListener.java15
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationManager.java98
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/DynamicConfiguration.java142
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Hint.java18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-cli/pom.xml55
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/cli/app/Configuration.java119
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/gui/app/Configuration.java623
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml123
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java1152
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/Constants.java14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/NonConfigResource.java95
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AgglomerateConfiguration.java32
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AggregateConfiguration.java164
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/CliConfigurationImpl.java354
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationChangeNotifier.java472
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationDataSource.java97
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationFilter.java37
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationImpl.java684
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationRepository.java415
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ContextListener.java48
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/YamlConfiguration.java18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationMode.java5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationQuery.java94
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationType.java5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationUpdate.java33
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/META-INF/services/org.openecomp.config.api.ConfigurationManager1
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/config-system.properties22
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/management.properties7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/pom.xml84
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java58
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java83
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java107
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java53
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java66
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java39
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java42
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java45
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java40
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java41
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java47
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java88
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java55
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java117
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java85
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java76
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java91
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java94
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java60
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java80
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java41
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java41
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java23
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java95
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml19
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml16
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json16
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json30
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml16
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties15
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zipbin0 -> 1705 bytes
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml19
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties2
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml19
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml25
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml27
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties22
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml15
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties11
-rw-r--r--common/openecomp-common-configuration-management/pom.xml50
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/pom.xml18
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/BaseFactory.java54
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/Logger.java103
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerCreationService.java11
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java232
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/annotations/Metrics.java15
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/ContextPropagationService.java10
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java73
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/LoggerFactoryTest.java74
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/context/TaskFactoryTest.java30
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/README29
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/pom.xml72
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Markers.java21
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Slf4JLoggerCreationService.java236
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/aspects/MetricsAspect.java72
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/context/MdcPropagationService.java71
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/DispatchingAppender.java142
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/EventTypeDiscriminator.java121
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/servlet/LoggingFilter.java135
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.LoggerCreationService1
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.context.ContextPropagationService1
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/LoggerFactoryTest.java25
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/RoutingTest.java155
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/api/LoggerTest.java65
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/aspects/MetricsAspectTest.java452
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/MDCPropagationFactoryTest.java216
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/TaskFactoryTest.java26
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/logback/EventTypeDiscriminatorTest.java220
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/servlet/LoggingFilterTest.java314
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/README8
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/dispatching-logback.xml335
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/logback.xml41
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/sifting-logback.xml42
-rw-r--r--common/openecomp-logging-lib/pom.xml34
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/pom.xml127
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGenerator.java72
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResource.java29
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResourceWidget.java32
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/FlavorWidget.java32
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ImageWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3Network.java29
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3NetworkWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/LIntfWidget.java32
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Model.java259
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/OamNetwork.java32
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ProvidingService.java29
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Resource.java52
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ResourceWidget.java26
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Service.java43
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ServiceWidget.java30
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TenantWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TunnelXconnectWidget.java31
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VServerWidget.java46
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModule.java81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModuleWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfcWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VirtualFunction.java30
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeGroupWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeWidget.java33
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Widget.java196
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/CapabilityAssignment.java45
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/GroupDefinition.java73
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/NodeTemplate.java82
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/RequirementAssignment.java53
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/TopologyTemplate.java71
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/ToscaTemplate.java82
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Cardinality.java26
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Model.java55
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelType.java47
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelWidget.java46
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/AdditionalParams.java39
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/Artifact.java96
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/ArtifactType.java27
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GenerationData.java70
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConfiguration.java36
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConstants.java129
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorUtil.java104
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GroupType.java26
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/WidgetConfigurationUtil.java36
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/error/IllegalAccessException.java29
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/ArtifactGenerator.java35
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/Generator.java40
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/ArtifactGeneratorLogResponseCode.java68
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/CategoryLogLevel.java29
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/StatusCode.java26
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Audit.java34
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Metrics.java35
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/service/ArtifactGenerationService.java80
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v10.xsd6311
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v9.xsd6303
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/pom.xml125
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorManager.java91
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorTask.java74
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/MockArtifactGenerator.java81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java687
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGeneratorImpl.java282
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/AuditAspect.java126
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/MetricsAspect.java140
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/impl/ArtifactGenerationServiceImpl.java86
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/util/ArtifactGeneratorUtil.java298
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java1745
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/service_vmme_template_1.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/vf_vmme_template_1.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-AllottedResource-template.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-Extvl-template.yml61
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/service-ServiceWithAllotedVfAndExvl-template.yml90
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-IpMuxDemux-template.yml80
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-ServiceAdmin-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-TunnelXconn-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-VhnfNonHeat-template.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/service-SdWan-template.yml233
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/config/Artifact-Generator.properties264
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/logback.xml51
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingResourceTosca/service_vmme_template_1.yml99
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/resource-AllottedResource-template.yml60
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/service-ServiceWithAllotedVfAndExvl-template.yml90
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModInvUuIdAttr.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModUuIdAttr.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModInvUUID.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelName.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelUUID.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelVersion.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/resource-AllottedResource-template_IpMux_WithGroups.yml283
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml62
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration10/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-IpMuxDemux-template.yml83
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-TunnelXconn-template.yml83
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/service-Allottedipmux-template.yml126
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/resource-AllottedResource-template_IpMux.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/service-ServiceWithAllottedResourceIpmux-template.yml62
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource1SameInvariant-IpMux-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource2SameInvariant-IpMux-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml74
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml74
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration2/Resource0-template.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration4/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration5/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/Resource0-template.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration8/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration9/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-IpMuxDemux-template_AllRes_VF.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-ServiceAdmin-template_AllRes_VF.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-TunnelXconn-template_AllRes_VF.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-VhnfNonHeat-template_AllRes_VF.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/service-SdWan-template_AllRes_VF.yml233
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-IpMuxDemux-template_WithOutDepSerId.yml80
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-ServiceAdmin-template_WithOutDepSerId.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-TunnelXconn-template_WithOutDepSerId.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-VhnfNonHeat-template_WithOutDepSerId.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/service-SdWan-template_WithOutDepSerId.yml233
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidInvId/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/service_vmme_template_1.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/vf_vmme_template_1.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/service_vmme_template_1.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/vf_vmme_template_1.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidUuId/service_vmme_template_1.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/service_vmme_template_1.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/vf_vmme_template_1.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-AllottedResource-template.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template.yml61
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template_1.yml61
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/service_vmme_template_1.yml139
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/vf_vmme_template_1.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/ServiceMock-template.yml74
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/VadtranDemo-template.yml170
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModInvUuIdAttr.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModUuIdAttr.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModInvUUID.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelName.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelUUID.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelVersion.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml43
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/pom.xml76
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java728
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java1805
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VF.yaml92
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFInvalidFormat.yaml92
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFMissingVFModule.yaml92
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VF.yaml217
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFInvalidFormat.yaml217
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFMissingVFModule.yaml217
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFOrphan.yaml211
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16.yaml179
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16InvalidFormat.yaml177
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16MissingVFModule.yaml177
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VF.yaml976
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFInvalidFormat.yaml975
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFMissingVFModule.yaml975
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource0-template.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource1-template.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-template.yml28
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-templateMoreThan256.yml28
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ServiceWithNodetemplate.yml51
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/service_vmme_template_1.yml193
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/vf_vmme_template_1.yml1219
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux_WithGroups.yml283
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDupL3Network.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3Network.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3NetworkInVFMod.yml78
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource1SameInvariant-IpMux-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource2SameInvariant-IpMux-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml61
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml61
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDupL3Network.yml61
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithL3Network.yml61
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template.yml83
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_AllRes_VF.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_WithOutDepSerId.yml80
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_AllRes_VF.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_WithOutDepSerId.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template.yml83
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_AllRes_VF.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_WithOutDepSerId.yml81
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_AllRes_VF.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_WithOutDepSerId.yml24
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-Allottedipmux-template.yml126
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_AllRes_VF.yml233
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_WithOutDepSerId.yml233
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template.yml62
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml62
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml74
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml74
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVF.yml112
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFModUUID.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFUUID.yml229
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFInServiceTOSCA.yml158
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFTemplate.yml193
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulComp.yml193
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulVFVFMod.yml194
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NoSystemPropConfigured.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NullFields.yml193
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_Orphan.yml229
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget1.yml193
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget2.yml193
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SingleVFVFMod.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml178
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat1.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat2.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersion.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersionFormat.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithInvalidNo.yml102
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithoutVNFC.yml193
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDiffVersionOfSameL3Network.yml235
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDupL3Network.yml235
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3Network.yml223
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3NetworkInVFMod.yml211
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithUpdatedUUIDInConfig.yml98
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml1353
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_1.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_2.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFModUUID.yml1242
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFUUID.yml1217
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulComp.yml1218
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulVFVFMod.yml1251
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NoSystemPropConfigured.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NullFields.yml1218
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_Orphan.yml1236
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets1.yml1218
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets2.yml1218
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SingleVFVFMod.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml975
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyResourceVersionFormat.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersion.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersionFormat.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithInvalidNo.yml1208
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithoutVNFC.yml1218
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDiffVersionOfSameL3Network.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDupL3Network.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3Network.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3NetworkInVFMod.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithUpdatedUUIDInConfig.yml1299
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/pom.xml24
-rw-r--r--common/openecomp-tosca-datatype/pom.xml24
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactDefinition.java71
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactType.java85
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/AttributeDefinition.java88
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityAssignment.java47
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinition.java112
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java37
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityType.java84
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Constraint.java179
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/DataType.java123
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Directive.java42
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/EntrySchema.java65
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupDefinition.java66
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupType.java84
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Import.java63
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceDefinition.java26
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceType.java26
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilter.java49
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeTemplate.java137
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeType.java125
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ParameterDefinition.java101
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyDefinition.java63
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyType.java75
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyDefinition.java114
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyType.java81
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipTemplate.java101
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipType.java93
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementAssignment.java73
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinition.java83
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Scalar.java36
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ServiceTemplate.java148
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Status.java42
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/SubstitutionMapping.java54
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Template.java24
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/TopologyTemplate.java114
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java57
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java85
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/DataModelCloneUtil.java103
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/YamlUtil.java252
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml30
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml811
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml40
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml1221
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml31
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml85
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml209
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml5148
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml57
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml35
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml100
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml478
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml72
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml523
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml56
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml37
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml55
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml230
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml191
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml30
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml61
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml371
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml43
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml106
-rw-r--r--common/pom.xml233
-rw-r--r--common/readMe.txt118
491 files changed, 116517 insertions, 0 deletions
diff --git a/common/.gitignore b/common/.gitignore
new file mode 100644
index 0000000000..2c9567e1a0
--- /dev/null
+++ b/common/.gitignore
@@ -0,0 +1,13 @@
+target
+package
+.settings
+.project
+.classpath
+.idea
+
+*.log
+
+### idea files
+*.iml
+*.ipr
+*.iws
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml
new file mode 100644
index 0000000000..7490ced1ac
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/pom.xml
@@ -0,0 +1,48 @@
+<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.common</groupId>
+ <name>openecomp-configuration-management-api</name>
+ <artifactId>openecomp-configuration-management-api</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-configuration-management</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <dependencies>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>${mvn.install.version}</version>
+ <executions>
+ <execution>
+ <id>install-mallet</id>
+ <phase>install</phase>
+ <goals>
+ <goal>install-file</goal>
+ </goals>
+ <configuration>
+ <file>${java.home}/../lib/tools.jar</file>
+ <groupId>tools</groupId>
+ <artifactId>tools</artifactId>
+ <version>1.8</version>
+ <packaging>jar</packaging>
+ <createChecksum>true</createChecksum>
+ <generatePom>true</generatePom>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Config.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Config.java
new file mode 100644
index 0000000000..2859ce639b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Config.java
@@ -0,0 +1,21 @@
+package org.openecomp.config.api;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * The interface Config.
+ */
+@Target({ElementType.TYPE, ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Config {
+
+ /**
+ * Key string.
+ *
+ * @return the string
+ */
+ String key() default "";
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Configuration.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Configuration.java
new file mode 100644
index 0000000000..4d82dad965
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Configuration.java
@@ -0,0 +1,831 @@
+package org.openecomp.config.api;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The interface Configuration.
+ */
+public interface Configuration {
+ /**
+ * The constant tenant.
+ */
+ public static ThreadLocal<String> tenant = new ThreadLocal<String>();
+
+ /**
+ * Sets tenant id.
+ *
+ * @param id the id
+ */
+ public static void setTenantId(String id) {
+ if (id != null && id.trim().length() > 0) {
+ tenant.set(id);
+ }
+ }
+
+ /**
+ * Gets as string.
+ *
+ * @param key the key
+ * @return the as string
+ */
+ public default String getAsString(String key) {
+ return getAsString(null, key);
+ }
+
+ /**
+ * Gets as string.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as string
+ */
+ public default String getAsString(String namespace, String key) {
+ return getAsString(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as string.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as string
+ */
+ public default String getAsString(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, String.class);
+ }
+
+ /**
+ * Gets as byte value.
+ *
+ * @param key the key
+ * @return the as byte value
+ */
+ public default Byte getAsByteValue(String key) {
+ return getAsByteValue(null, key);
+ }
+
+ /**
+ * Gets as byte value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as byte value
+ */
+ public default Byte getAsByteValue(String namespace, String key) {
+ return getAsByteValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as byte value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as byte value
+ */
+ public default Byte getAsByteValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Byte.class);
+ }
+
+ /**
+ * Gets as short value.
+ *
+ * @param key the key
+ * @return the as short value
+ */
+ public default Short getAsShortValue(String key) {
+ return getAsShortValue(null, key);
+ }
+
+ /**
+ * Gets as short value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as short value
+ */
+ public default Short getAsShortValue(String namespace, String key) {
+ return getAsShortValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as short value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as short value
+ */
+ public default Short getAsShortValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Short.class);
+ }
+
+ /**
+ * Gets as integer value.
+ *
+ * @param key the key
+ * @return the as integer value
+ */
+ public default Integer getAsIntegerValue(String key) {
+ return getAsIntegerValue(null, key);
+ }
+
+ /**
+ * Gets as integer value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as integer value
+ */
+ public default Integer getAsIntegerValue(String namespace, String key) {
+ return getAsIntegerValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as integer value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as integer value
+ */
+ public default Integer getAsIntegerValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Integer.class);
+ }
+
+ /**
+ * Gets as long value.
+ *
+ * @param key the key
+ * @return the as long value
+ */
+ public default Long getAsLongValue(String key) {
+ return getAsLongValue(null, key);
+ }
+
+ /**
+ * Gets as long value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as long value
+ */
+ public default Long getAsLongValue(String namespace, String key) {
+ return getAsLongValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as long value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as long value
+ */
+ public default Long getAsLongValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Long.class);
+ }
+
+ /**
+ * Gets as float value.
+ *
+ * @param key the key
+ * @return the as float value
+ */
+ public default Float getAsFloatValue(String key) {
+ return getAsFloatValue(null, key);
+ }
+
+ /**
+ * Gets as float value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as float value
+ */
+ public default Float getAsFloatValue(String namespace, String key) {
+ return getAsFloatValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as float value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as float value
+ */
+ public default Float getAsFloatValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Float.class);
+ }
+
+ /**
+ * Gets as double value.
+ *
+ * @param key the key
+ * @return the as double value
+ */
+ public default Double getAsDoubleValue(String key) {
+ return getAsDoubleValue(null, key);
+ }
+
+ /**
+ * Gets as double value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as double value
+ */
+ public default Double getAsDoubleValue(String namespace, String key) {
+ return getAsDoubleValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as double value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as double value
+ */
+ public default Double getAsDoubleValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Double.class);
+ }
+
+ /**
+ * Gets as boolean value.
+ *
+ * @param key the key
+ * @return the as boolean value
+ */
+ public default Boolean getAsBooleanValue(String key) {
+ return getAsBooleanValue(null, key);
+ }
+
+ /**
+ * Gets as boolean value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as boolean value
+ */
+ public default Boolean getAsBooleanValue(String namespace, String key) {
+ return getAsBooleanValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as boolean value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as boolean value
+ */
+ public default Boolean getAsBooleanValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Boolean.class);
+ }
+
+ /**
+ * Gets as char value.
+ *
+ * @param key the key
+ * @return the as char value
+ */
+ public default Character getAsCharValue(String key) {
+ return getAsCharValue(null, key);
+ }
+
+ /**
+ * Gets as char value.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as char value
+ */
+ public default Character getAsCharValue(String namespace, String key) {
+ return getAsCharValue(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as char value.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as char value
+ */
+ public default Character getAsCharValue(String tenantId, String namespace, String key) {
+ return get(tenantId, namespace, key, Character.class);
+ }
+
+ /**
+ * Populate configuration t.
+ *
+ * @param <T> the type parameter
+ * @param clazz the clazz
+ * @return the t
+ */
+ public default <T> T populateConfiguration(Class<T> clazz) {
+ return populateConfiguration(null, clazz);
+ }
+
+ /**
+ * Populate configuration t.
+ *
+ * @param <T> the type parameter
+ * @param namespace the namespace
+ * @param clazz the clazz
+ * @return the t
+ */
+ public default <T> T populateConfiguration(String namespace, Class<T> clazz) {
+ return populateConfiguration(tenant.get(), namespace, clazz);
+ }
+
+ /**
+ * Populate configuration t.
+ *
+ * @param <T> the type parameter
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param clazz the clazz
+ * @return the t
+ */
+ public default <T> T populateConfiguration(String tenantId, String namespace, Class<T> clazz) {
+ return get(tenantId, namespace, null, clazz, Hint.EXTERNAL_LOOKUP);
+ }
+
+ /**
+ * Gets dynamic configuration.
+ *
+ * @param <T> the type parameter
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @return the dynamic configuration
+ */
+ public default <T> DynamicConfiguration<T> getDynamicConfiguration(String key, Class<T> clazz,
+ T defaultValue) {
+ return getDynamicConfiguration(null, key, clazz, defaultValue);
+ }
+
+ /**
+ * Gets dynamic configuration.
+ *
+ * @param <T> the type parameter
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @return the dynamic configuration
+ */
+ public default <T> DynamicConfiguration<T> getDynamicConfiguration(String namespace, String key,
+ Class<T> clazz,
+ T defaultValue) {
+ return getDynamicConfiguration(tenant.get(), namespace, key, clazz, defaultValue);
+ }
+
+ /**
+ * Gets dynamic configuration.
+ *
+ * @param <T> the type parameter
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @return the dynamic configuration
+ */
+ public default <T> DynamicConfiguration<T> getDynamicConfiguration(String tenant,
+ String namespace, String key,
+ Class<T> clazz,
+ T defaultValue) {
+ return DynamicConfiguration
+ .getDynamicConfiguration(tenant, namespace, key, clazz, defaultValue, this);
+ }
+
+ /**
+ * Gets dynamic configuration values.
+ *
+ * @param <T> the type parameter
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @return the dynamic configuration values
+ */
+ public default <T> DynamicConfiguration<List<T>> getDynamicConfigurationValues(String key,
+ Class<T> clazz,
+ T defaultValue) {
+ return getDynamicConfigurationValues(null, key, clazz, defaultValue);
+ }
+
+ /**
+ * Gets dynamic configuration values.
+ *
+ * @param <T> the type parameter
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @return the dynamic configuration values
+ */
+ public default <T> DynamicConfiguration<List<T>> getDynamicConfigurationValues(String namespace,
+ String key,
+ Class<T> clazz,
+ T defaultValue) {
+ return getDynamicConfigurationValues(tenant.get(), namespace, key, clazz, defaultValue);
+ }
+
+ /**
+ * Gets dynamic configuration values.
+ *
+ * @param <T> the type parameter
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @return the dynamic configuration values
+ */
+ public default <T> DynamicConfiguration<List<T>> getDynamicConfigurationValues(String tenant,
+ String namespace,
+ String key,
+ Class<T> clazz,
+ T defaultValue) {
+ return DynamicConfiguration
+ .getDynConfiguration(tenant, namespace, key, clazz, defaultValue, this);
+ }
+
+ /**
+ * Gets as string values.
+ *
+ * @param key the key
+ * @return the as string values
+ */
+ public default List<String> getAsStringValues(String key) {
+ return getAsStringValues(null, key);
+ }
+
+ /**
+ * Gets as string values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as string values
+ */
+ public default List<String> getAsStringValues(String namespace, String key) {
+ return getAsStringValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as string values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as string values
+ */
+ public default List<String> getAsStringValues(String tenantId, String namespace, String key) {
+ String[] tempArray = get(tenantId, namespace, key, String[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Gets as byte values.
+ *
+ * @param key the key
+ * @return the as byte values
+ */
+ public default List<Byte> getAsByteValues(String key) {
+ return getAsByteValues(null, key);
+ }
+
+ /**
+ * Gets as byte values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as byte values
+ */
+ public default List<Byte> getAsByteValues(String namespace, String key) {
+ return getAsByteValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as byte values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as byte values
+ */
+ public default List<Byte> getAsByteValues(String tenantId, String namespace, String key) {
+ Byte[] tempArray = get(tenantId, namespace, key, Byte[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Gets as short values.
+ *
+ * @param key the key
+ * @return the as short values
+ */
+ public default List<Short> getAsShortValues(String key) {
+ return getAsShortValues(null, key);
+ }
+
+ /**
+ * Gets as short values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as short values
+ */
+ public default List<Short> getAsShortValues(String namespace, String key) {
+ return getAsShortValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as short values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as short values
+ */
+ public default List<Short> getAsShortValues(String tenantId, String namespace, String key) {
+ Short[] tempArray = get(tenantId, namespace, key, Short[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Gets as integer values.
+ *
+ * @param key the key
+ * @return the as integer values
+ */
+ public default List<Integer> getAsIntegerValues(String key) {
+ return getAsIntegerValues(null, key);
+ }
+
+ /**
+ * Gets as integer values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as integer values
+ */
+ public default List<Integer> getAsIntegerValues(String namespace, String key) {
+ return getAsIntegerValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as integer values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as integer values
+ */
+ public default List<Integer> getAsIntegerValues(String tenantId, String namespace, String key) {
+ Integer[] tempArray = get(tenantId, namespace, key, Integer[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Gets as double values.
+ *
+ * @param key the key
+ * @return the as double values
+ */
+ public default List<Double> getAsDoubleValues(String key) {
+ return getAsDoubleValues(null, key);
+ }
+
+ /**
+ * Gets as double values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as double values
+ */
+ public default List<Double> getAsDoubleValues(String namespace, String key) {
+ return getAsDoubleValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as double values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as double values
+ */
+ public default List<Double> getAsDoubleValues(String tenantId, String namespace, String key) {
+ Double[] tempArray = get(tenantId, namespace, key, Double[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Gets as float values.
+ *
+ * @param key the key
+ * @return the as float values
+ */
+ public default List<Float> getAsFloatValues(String key) {
+ return getAsFloatValues(null, key);
+ }
+
+ /**
+ * Gets as float values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as float values
+ */
+ public default List<Float> getAsFloatValues(String namespace, String key) {
+ return getAsFloatValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as float values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as float values
+ */
+ public default List<Float> getAsFloatValues(String tenantId, String namespace, String key) {
+ Float[] tempArray = get(tenantId, namespace, key, Float[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Gets as boolean values.
+ *
+ * @param key the key
+ * @return the as boolean values
+ */
+ public default List<Boolean> getAsBooleanValues(String key) {
+ return getAsBooleanValues(null, key);
+ }
+
+ /**
+ * Gets as boolean values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as boolean values
+ */
+ public default List<Boolean> getAsBooleanValues(String namespace, String key) {
+ return getAsBooleanValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as boolean values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as boolean values
+ */
+ public default List<Boolean> getAsBooleanValues(String tenantId, String namespace, String key) {
+ Boolean[] tempArray = get(tenantId, namespace, key, Boolean[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Gets as character values.
+ *
+ * @param key the key
+ * @return the as character values
+ */
+ public default List<Character> getAsCharacterValues(String key) {
+ return getAsCharacterValues(null, key);
+ }
+
+ /**
+ * Gets as character values.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as character values
+ */
+ public default List<Character> getAsCharacterValues(String namespace, String key) {
+ return getAsCharacterValues(tenant.get(), namespace, key);
+ }
+
+ /**
+ * Gets as character values.
+ *
+ * @param tenantId the tenant id
+ * @param namespace the namespace
+ * @param key the key
+ * @return the as character values
+ */
+ public default List<Character> getAsCharacterValues(String tenantId, String namespace,
+ String key) {
+ Character[] tempArray = get(tenantId, namespace, key, Character[].class);
+ return tempArray == null ? Arrays.asList() : Arrays.asList(tempArray);
+ }
+
+ /**
+ * Get t.
+ *
+ * @param <T> the type parameter
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param hints the hints
+ * @return the t
+ */
+ public <T> T get(String tenant, String namespace, String key, Class<T> clazz, Hint... hints);
+
+ /**
+ * Add configuration change listener.
+ *
+ * @param key the key
+ * @param myself the myself
+ */
+ public default void addConfigurationChangeListener(String key,
+ ConfigurationChangeListener myself) {
+ addConfigurationChangeListener(null, key, myself);
+ }
+
+ /**
+ * Add configuration change listener.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @param myself the myself
+ */
+ public default void addConfigurationChangeListener(String namespace, String key,
+ ConfigurationChangeListener myself) {
+ addConfigurationChangeListener(tenant.get(), namespace, key, myself);
+ }
+
+ /**
+ * Add configuration change listener.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param myself the myself
+ */
+ public void addConfigurationChangeListener(String tenant, String namespace, String key,
+ ConfigurationChangeListener myself);
+
+ /**
+ * Remove configuration change listener.
+ *
+ * @param key the key
+ * @param myself the myself
+ */
+ public default void removeConfigurationChangeListener(String key,
+ ConfigurationChangeListener myself) {
+ removeConfigurationChangeListener(null, key, myself);
+ }
+
+ /**
+ * Remove configuration change listener.
+ *
+ * @param namespace the namespace
+ * @param key the key
+ * @param myself the myself
+ */
+ public default void removeConfigurationChangeListener(String namespace, String key,
+ ConfigurationChangeListener myself) {
+ removeConfigurationChangeListener(tenant.get(), namespace, key, myself);
+ }
+
+ /**
+ * Remove configuration change listener.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param myself the myself
+ */
+ public void removeConfigurationChangeListener(String tenant, String namespace, String key,
+ ConfigurationChangeListener myself);
+
+ public default <T> Map<String, T> populateMap(String key, Class<T> clazz){
+ return populateMap(null, key, clazz);
+ }
+ public default <T> Map<String, T> populateMap(String namespace, String key, Class<T> clazz){
+ return populateMap(tenant.get(), namespace, key, clazz);
+ }
+ public <T> Map<String, T> populateMap(String tenantId, String namespace, String key, Class<T> clazz);
+
+ public default Map generateMap(String key){
+ return generateMap(null, key);
+ }
+ public default Map generateMap(String namespace, String key){
+ return generateMap(tenant.get(), namespace, key);
+ }
+ public Map generateMap(String tenantId, String namespace, String key);
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationChangeListener.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationChangeListener.java
new file mode 100644
index 0000000000..57814bba44
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationChangeListener.java
@@ -0,0 +1,15 @@
+package org.openecomp.config.api;
+
+public interface ConfigurationChangeListener {
+
+ public default void notify(String tenantId, String component, String key, Object oldValue,
+ Object newValue) {
+ }
+
+ public default void notify(String component, String key, Object oldValue, Object newValue) {
+ System.out.println("HIT");
+ }
+
+ public default void notify(String key, Object oldValue, Object newValue) {
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationManager.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationManager.java
new file mode 100644
index 0000000000..ffa9255f2c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/ConfigurationManager.java
@@ -0,0 +1,98 @@
+package org.openecomp.config.api;
+
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Proxy;
+import java.util.Collection;
+import java.util.Map;
+import java.util.ServiceLoader;
+
+/**
+ * The interface Configuration manager.
+ */
+public interface ConfigurationManager extends Configuration {
+
+ /**
+ * The constant config.
+ */
+ public static final Configuration config = lookup();
+
+ /**
+ * Lookup configuration.
+ *
+ * @return the configuration
+ */
+ public static Configuration lookup() {
+ if (config == null) {
+ ServiceLoader<ConfigurationManager> loader = ServiceLoader.load(ConfigurationManager.class);
+ for (ConfigurationManager configuration : loader) {
+ return (Configuration) Proxy.newProxyInstance(ConfigurationManager.class.getClassLoader(),
+ new Class[]{Configuration.class}, (object, method, args) -> {
+ try {
+ return method.invoke(configuration, args);
+ } catch (InvocationTargetException ite) {
+ throw ite.getTargetException();
+ }
+ });
+ }
+ }
+ return config;
+ }
+
+ /**
+ * Gets configuration value.
+ *
+ * @param queryData the query data
+ * @return the configuration value
+ */
+ public String getConfigurationValue(Map<String, Object> queryData);
+
+ /**
+ * Update configuration value.
+ *
+ * @param updateData the update data
+ */
+ public void updateConfigurationValue(Map<String, Object> updateData);
+
+ /**
+ * List configuration map.
+ *
+ * @param query the query
+ * @return the map
+ */
+ public Map<String, String> listConfiguration(Map<String, Object> query);
+
+ /**
+ * Update configuration values boolean.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param configKeyValueStore the config key value store
+ * @return the boolean
+ */
+ public boolean updateConfigurationValues(String tenant, String namespace,
+ Map configKeyValueStore);
+
+ /**
+ * Gets tenants.
+ *
+ * @return the tenants
+ */
+ public Collection<String> getTenants();
+
+ /**
+ * Gets namespaces.
+ *
+ * @return the namespaces
+ */
+ public Collection<String> getNamespaces();
+
+ /**
+ * Gets keys.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @return the keys
+ */
+ public Collection<String> getKeys(String tenant, String namespace);
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/DynamicConfiguration.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/DynamicConfiguration.java
new file mode 100644
index 0000000000..428d9ee233
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/DynamicConfiguration.java
@@ -0,0 +1,142 @@
+package org.openecomp.config.api;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * The type Dynamic configuration.
+ *
+ * @param <T> the type parameter
+ */
+public class DynamicConfiguration<T> {
+
+ /**
+ * The Tenant.
+ */
+ String tenant;
+ /**
+ * The Namespace.
+ */
+ String namespace;
+ /**
+ * The Key.
+ */
+ String key;
+ /**
+ * The Configuration.
+ */
+ Configuration configuration;
+ /**
+ * The Clazz.
+ */
+ Class clazz;
+ /**
+ * The Default value.
+ */
+ T defaultValue;
+
+ /**
+ * Gets dynamic configuration.
+ *
+ * @param <T> the type parameter
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @param configuration the configuration
+ * @return the dynamic configuration
+ */
+ public static <T> DynamicConfiguration<T> getDynamicConfiguration(String tenant, String namespace,
+ String key, Class<T> clazz,
+ T defaultValue,
+ Configuration configuration) {
+ DynamicConfiguration<T> dynamicConfiguration = new DynamicConfiguration<>();
+ dynamicConfiguration.tenant = tenant;
+ dynamicConfiguration.namespace = namespace;
+ dynamicConfiguration.key = key;
+ dynamicConfiguration.clazz = clazz;
+ dynamicConfiguration.defaultValue = defaultValue;
+ dynamicConfiguration.configuration = configuration;
+ return dynamicConfiguration;
+ }
+
+ /**
+ * Gets dyn configuration.
+ *
+ * @param <K> the type parameter
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param defaultValue the default value
+ * @param configuration the configuration
+ * @return the dyn configuration
+ */
+ public static <K> DynamicConfiguration<List<K>> getDynConfiguration(String tenant,
+ String namespace, String key,
+ Class<K> clazz,
+ K defaultValue,
+ Configuration configuration) {
+ if (clazz.isPrimitive()) {
+ throw new RuntimeException(
+ "Only Wrapper classes like Integer, Long, Double, "
+ + "Boolean etc including String are supported.");
+ }
+ DynamicConfiguration<List<K>> dynamicConfiguration = new DynamicConfiguration<>();
+ dynamicConfiguration.tenant = tenant;
+ dynamicConfiguration.namespace = namespace;
+ dynamicConfiguration.key = key;
+ dynamicConfiguration.clazz = getArrayClass(clazz);
+ dynamicConfiguration.defaultValue = Arrays.asList(defaultValue);
+ dynamicConfiguration.configuration = configuration;
+ return dynamicConfiguration;
+ }
+
+ /**
+ * Gets array class.
+ *
+ * @param clazz the clazz
+ * @return the array class
+ */
+ public static Class getArrayClass(Class clazz) {
+ switch (clazz.getName()) {
+ case "java.lang.Byte":
+ return Byte[].class;
+ case "java.lang.Short":
+ return Short[].class;
+ case "java.lang.Integer":
+ return Integer[].class;
+ case "java.lang.Long":
+ return Long[].class;
+ case "java.lang.Float":
+ return Float[].class;
+ case "java.lang.Double":
+ return Double[].class;
+ case "java.lang.Boolean":
+ return Boolean[].class;
+ case "java.lang.Character":
+ return Character[].class;
+ case "java.lang.String":
+ return String[].class;
+ default:
+ }
+ return null;
+ }
+
+ /**
+ * Get t.
+ *
+ * @return the t
+ */
+ public T get() {
+ Object toReturn = configuration
+ .get(tenant, namespace, key, clazz, Hint.LATEST_LOOKUP, Hint.EXTERNAL_LOOKUP,
+ Hint.NODE_SPECIFIC);
+ if (toReturn != null && toReturn.getClass().isArray()) {
+ toReturn = Arrays.asList((Object[]) toReturn);
+ }
+ return toReturn == null ? defaultValue : (T) toReturn;
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Hint.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Hint.java
new file mode 100644
index 0000000000..c3f54bd183
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-api/src/main/java/org/openecomp/config/api/Hint.java
@@ -0,0 +1,18 @@
+package org.openecomp.config.api;
+
+public enum Hint {
+
+ DEFAULT(0b0), LATEST_LOOKUP(0b1), EXTERNAL_LOOKUP(0b10), NODE_SPECIFIC(0b100);
+
+ private final int hint;
+
+ private Hint(int hnt) {
+ hint = hnt;
+ }
+
+ public int value() {
+ return hint;
+ }
+
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/pom.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/pom.xml
new file mode 100644
index 0000000000..d84f8167bb
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/pom.xml
@@ -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>
+
+ <groupId>org.openecomp.sdc.common</groupId>
+ <name>openecomp-configuration-management-cli</name>
+ <artifactId>openecomp-configuration-management-cli</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-configuration-management</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>tools</groupId>
+ <artifactId>tools</artifactId>
+ <version>1.8</version>
+ <optional>true</optional>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>1.5</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <mainClass>org.openecomp.config.gui.app.Configuration</mainClass>
+ </transformer>
+ </transformers>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/cli/app/Configuration.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/cli/app/Configuration.java
new file mode 100644
index 0000000000..d43c0505a8
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/cli/app/Configuration.java
@@ -0,0 +1,119 @@
+package org.openecomp.config.cli.app;
+
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+
+/**
+ * The type Configuration.
+ */
+public class Configuration {
+
+ /**
+ * The entry point of application.
+ *
+ * @param args the input arguments
+ * @throws Exception the exception
+ */
+ public static void main(String[] args) throws Exception {
+
+ String host = getValueFor("host", args);
+ String port = getValueFor("port", args);
+
+ if (host == null) {
+ host = "127.0.0.1";
+ }
+ if (port == null) {
+ port = "9999";
+ }
+ JMXServiceURL url =
+ new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi");
+ Map<String, String[]> env = new HashMap<>();
+ //populate dummy value. need to be changed as per impl.
+ String[] credentials = {"principal", "password"};
+ env.put(JMXConnector.CREDENTIALS, credentials);
+
+ try (JMXConnector jmxc = JMXConnectorFactory.connect(url, env)) {
+
+ boolean isUpdate = isKeyPresent("update", args);
+
+ Map<String, Object> input = new HashMap<>();
+ input.put("ImplClass", isUpdate ? "org.openecomp.config.type.ConfigurationUpdate"
+ : "org.openecomp.config.type.ConfigurationQuery");
+ input.put("externalLookup", isKeyPresent("lookup", args));
+ input.put("nodeOverride", isKeyPresent("nodeOverride", args));
+ input.put("nodeSpecific", isKeyPresent("nodeSpecific", args));
+ input.put("fallback", isKeyPresent("fallback", args));
+ input.put("latest", isKeyPresent("latest", args));
+ input.put("tenant", getValueFor("tenant", args));
+ input.put("namespace", getValueFor("namespace", args));
+ input.put("key", getValueFor("key", args));
+ input.put("value", getValueFor("value", args));
+
+
+ if (!isKeyPresent("list", args) && getValueFor("key", args) == null) {
+ throw new RuntimeException("Key is missing.");
+ }
+ if (isKeyPresent("update", args) && getValueFor("value", args) == null) {
+ throw new RuntimeException("Value is missing.");
+ }
+
+
+ MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
+ ObjectName mbeanName = new ObjectName("org.openecomp.jmx:name=SystemConfig");
+ org.openecomp.config.api.ConfigurationManager conf =
+ JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class,
+ true);
+
+ boolean isGet = isKeyPresent("get", args);
+ boolean isList = isKeyPresent("list", args);
+ if (isGet) {
+ System.out.println(conf.getConfigurationValue(input));
+ } else if (isList) {
+ Map<String, String> map = conf.listConfiguration(input);
+ for (Map.Entry<String, String> entry : map.entrySet()) {
+ System.out.println(entry.getKey() + " : " + entry.getValue());
+ }
+ } else if (isUpdate) {
+ conf.updateConfigurationValue(input);
+ }
+ }
+ }
+
+ private static boolean isSwitch(String key) {
+ return key.startsWith("-");
+ }
+
+ private static String getValueFor(String key, String[] args) {
+ for (int i = 0; i < args.length; i++) {
+ if (isSwitch(args[i])) {
+ String node = args[i].substring(1);
+ if (node.equalsIgnoreCase(key) && i < args.length - 1) {
+ return args[i + 1].trim().length() == 0 ? null : args[i + 1].trim();
+ }
+ }
+ }
+ return null;
+ }
+
+ private static boolean isKeyPresent(String key, String[] args) {
+ for (int i = 0; i < args.length; i++) {
+ if (isSwitch(args[i])) {
+ String node = args[i].substring(1);
+ if (node.equalsIgnoreCase(key)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/gui/app/Configuration.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/gui/app/Configuration.java
new file mode 100644
index 0000000000..3db67c536a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-cli/src/main/java/org/openecomp/config/gui/app/Configuration.java
@@ -0,0 +1,623 @@
+package org.openecomp.config.gui.app;
+
+
+import com.sun.tools.attach.VirtualMachine;
+import com.sun.tools.attach.VirtualMachineDescriptor;
+import org.openecomp.config.api.ConfigurationManager;
+
+import java.awt.BorderLayout;
+import java.awt.Button;
+import java.awt.CardLayout;
+import java.awt.Checkbox;
+import java.awt.CheckboxGroup;
+import java.awt.Choice;
+import java.awt.Dialog;
+import java.awt.Dimension;
+import java.awt.Frame;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.ScrollPane;
+import java.awt.TextArea;
+import java.awt.TextField;
+import java.awt.Toolkit;
+import java.awt.event.ItemEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+
+
+/**
+ * The type Configuration.
+ */
+public class Configuration extends Frame {
+
+ /**
+ * The Vm.
+ */
+ VirtualMachine vm = null;
+ private TextField host;
+ private TextField port;
+ private TextField user;
+ private Choice pid;
+ private TextField password;
+ private CheckboxGroup getUpdateList;
+ private CheckboxGroup localRemote;
+ private Choice tenantChoice;
+ private Choice namespaceChoice;
+ private Choice keyChoice;
+ private Checkbox latest;
+ private Checkbox lookup;
+ private Checkbox fallback;
+ private Checkbox nodeSpecific;
+ private Checkbox nodeSpecificForList;
+ private Checkbox latestForList;
+ private Checkbox lookupForList;
+ private Checkbox fallbackForList;
+ private Checkbox nodeOverride;
+ private TextArea getValue = new TextArea(1, 50);
+ private TextArea updateValue = new TextArea(1, 50);
+ private Panel table;
+ private CardLayout cards;
+ private Panel cardPanel;
+ private JMXConnector connector;
+ private ConfigurationManager manager;
+ private Frame container;
+ private Button getKeysButton;
+
+ /**
+ * Instantiates a new Configuration.
+ *
+ * @param title the title
+ */
+ public Configuration(String title) {
+ super(title);
+ setSize(300, 300);
+ setLayout(new GridLayout(2, 1));
+ Panel firstRowPanel = new Panel();
+ firstRowPanel.setLayout(new GridLayout(0, 1));
+ firstRowPanel.add(
+ buildHostPortPanel(host = new TextField("127.0.0.1"), port = new TextField("9999"),
+ pid = new Choice(), localRemote = new CheckboxGroup()));
+ firstRowPanel
+ .add(buildUserPasswordPanel(user = new TextField(""), password = new TextField("")));
+ firstRowPanel.add(buildGetUpdatelistPanel(getUpdateList = new CheckboxGroup()));
+ firstRowPanel.add(
+ buildTenantNamespacePanel(tenantChoice = new Choice(), namespaceChoice = new Choice()));
+ firstRowPanel.add(buildKeyPanel(keyChoice = new Choice()));
+ add(firstRowPanel);
+ add(cardPanel = buildCards(cards = new CardLayout()));
+ addWindowListener(new WindowAdapter() {
+ public void windowClosing(WindowEvent windowEvent) {
+ close();
+ System.exit(0);
+ }
+ });
+ pack();
+ setVisible(true);
+ container = this;
+ centreWindow(this);
+ Executors.newSingleThreadScheduledExecutor().scheduleWithFixedDelay(() -> {
+ this.populateAvailablePids();
+ validate();
+ }, 30, 30, TimeUnit.SECONDS);
+ }
+
+ /**
+ * The entry point of application.
+ *
+ * @param args the input arguments
+ */
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration("Configuration Management App");
+
+ }
+
+ private void toggleLocalRemote(ItemEvent ie) {
+ if (ie.getStateChange() == ItemEvent.SELECTED) {
+ String usecase = (ie.getSource() instanceof Checkbox) ? ((Checkbox) ie.getSource()).getLabel()
+ : ((Checkbox) ie.getItem()).getLabel();
+ pid.setEnabled(usecase.equals("Local"));
+ host.setEnabled(!usecase.equals("Local"));
+ port.setEnabled(!usecase.equals("Local"));
+ }
+ }
+
+ private Panel buildHostPortPanel(TextField host, TextField port, Choice pid,
+ CheckboxGroup group) {
+ populateAvailablePids();
+ Panel panel = new Panel();
+ panel.setLayout(new GridBagLayout());
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 0;
+ Checkbox checkbox = null;
+ panel.add(checkbox = new Checkbox("Local", group, pid.getItemCount() > 0), gbc);
+ checkbox.addItemListener(this::toggleLocalRemote);
+ gbc.weightx = 0;
+ panel.add(checkbox = new Checkbox("Remote", group, pid.getItemCount() == 0), gbc);
+ checkbox.addItemListener(this::toggleLocalRemote);
+ gbc.weightx = 0;
+ panel.add(new Label("PID:"), gbc);
+ gbc.weightx = 1;
+ panel.add(pid, gbc);
+ gbc.weightx = 0;
+ panel.add(new Label("Host:"), gbc);
+ gbc.weightx = 1;
+ panel.add(host, gbc);
+ gbc.weightx = 0;
+ panel.add(new Label("Port:"), gbc);
+ gbc.weightx = 1;
+ panel.add(port, gbc);
+ host.setEnabled(pid.getItemCount() == 0);
+ port.setEnabled(pid.getItemCount() == 0);
+ pid.setEnabled(pid.getItemCount() > 0);
+ return panel;
+ }
+
+ private Panel buildUserPasswordPanel(TextField user, TextField password) {
+ Panel panel = new Panel();
+ password.setEchoChar('*');
+ panel.setLayout(new GridBagLayout());
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 0;
+ panel.add(new Label("User : "), gbc);
+ gbc.weightx = 1;
+ panel.add(user, gbc);
+ gbc.weightx = 0;
+ panel.add(new Label("Password : "), gbc);
+ gbc.weightx = 1;
+ panel.add(password, gbc);
+ gbc.weightx = 0;
+ Button button = null;
+ panel.add(button = new Button("Connect"), gbc);
+ button.addActionListener((actionListener) -> connect());
+ return panel;
+ }
+
+ /**
+ * Build get updatelist panel panel.
+ *
+ * @param getUpdtaeList the get updtae list
+ * @return the panel
+ */
+ public Panel buildGetUpdatelistPanel(CheckboxGroup getUpdtaeList) {
+ Panel panel = new Panel();
+ Checkbox checkbox = null;
+ panel.setLayout(new GridLayout(1, 3));
+ panel.add(checkbox = new Checkbox("Get", getUpdtaeList, true));
+ checkbox.addItemListener(this::showCard);
+ panel.add(checkbox = new Checkbox("List", getUpdtaeList, false));
+ checkbox.addItemListener(this::showCard);
+ panel.add(checkbox = new Checkbox("Update", getUpdtaeList, false));
+ checkbox.addItemListener(this::showCard);
+ return panel;
+ }
+
+ /**
+ * Build tenant namespace panel panel.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @return the panel
+ */
+ public Panel buildTenantNamespacePanel(Choice tenant, Choice namespace) {
+ Panel panel = new Panel();
+ panel.setLayout(new GridBagLayout());
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 0;
+ panel.add(new Label("Tenant"), gbc);
+ gbc.weightx = 1;
+ panel.add(tenant, gbc);
+ gbc.weightx = 0;
+ panel.add(new Label("Namespace"), gbc);
+ gbc.weightx = 1;
+ panel.add(namespace, gbc);
+ gbc.weightx = 0;
+ panel.add(getKeysButton = new Button("Get Keys"), gbc);
+ getKeysButton.addActionListener((actionListener) -> populateKeys(
+ manager.getKeys(tenantChoice.getSelectedItem(), namespaceChoice.getSelectedItem())));
+ tenantChoice.addItemListener((itemListener) -> keyChoice.removeAll());
+ namespaceChoice.addItemListener((itemListener) -> keyChoice.removeAll());
+ return panel;
+ }
+
+ private Panel buildConnectPanel() {
+ Button button = null;
+ Panel panel = new Panel();
+ panel.setLayout(new GridLayout(1, 3));
+ panel.add(new Label());
+ panel.add(button = new Button("Connect"));
+ panel.add(new Label());
+ button.addActionListener((actionListener) -> connect());
+ return panel;
+ }
+
+ /**
+ * Build key panel panel.
+ *
+ * @param keyChoice the key choice
+ * @return the panel
+ */
+ public Panel buildKeyPanel(Choice keyChoice) {
+ Panel panel = new Panel();
+ panel.setLayout(new GridBagLayout());
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 0;
+ panel.add(new Label("Keys : "), gbc);
+ gbc.weightx = 1;
+ panel.add(keyChoice, gbc);
+ return panel;
+ }
+
+ /**
+ * Build cards panel.
+ *
+ * @param cards the cards
+ * @return the panel
+ */
+ public Panel buildCards(CardLayout cards) {
+ Panel panel = new Panel();
+ panel.setLayout(cards);
+ panel.add(buildCardGetPanel(latest = new Checkbox("Latest"),
+ fallback = new Checkbox("Fallback"),
+ lookup = new Checkbox("External Lookup"), nodeSpecific = new Checkbox("Node Specific"),
+ getValue), "Get");
+ panel.add(buildCardUpdatePanel(nodeOverride = new Checkbox("NodeOverride"),
+ updateValue), "Update");
+ panel.add(buildCardListPanel(table = new Panel(), latestForList = new Checkbox("Latest"),
+ fallbackForList = new Checkbox("Fallback"), lookupForList = new Checkbox("External Lookup"),
+ nodeSpecificForList = new Checkbox("Node Specific")), "List");
+ return panel;
+ }
+
+ /**
+ * Build card get panel panel.
+ *
+ * @param latest the latest
+ * @param fallback the fallback
+ * @param lookup the lookup
+ * @param nodeSpecific the node specific
+ * @param value the value
+ * @return the panel
+ */
+ public Panel buildCardGetPanel(Checkbox latest, Checkbox fallback, Checkbox lookup,
+ Checkbox nodeSpecific, TextArea value) {
+ Panel panel = new Panel();
+
+ panel.setLayout(new BorderLayout());
+ Panel p1 = new Panel();
+ p1.setLayout(new GridLayout(1, 4));
+ p1.add(latest);
+ p1.add(fallback);
+ p1.add(nodeSpecific);
+ p1.add(lookup);
+ panel.add(p1, BorderLayout.NORTH);
+ panel.add(value, BorderLayout.CENTER);
+ Panel bottom = new Panel();
+ bottom.setLayout(new GridLayout(1, 5));
+ bottom.add(new Label());
+ Button button = null;
+ bottom.add(button = new Button("GET"));
+ button.addActionListener((actionListener) -> value.setText(manager
+ .getConfigurationValue(buildMap("org.openecomp.config.type.ConfigurationQuery", value))));
+ bottom.add(new Label());
+ bottom.add(button = new Button("CLOSE"));
+ bottom.add(new Label());
+ panel.add(bottom, BorderLayout.SOUTH);
+ button.addActionListener((actionListener) -> {
+ close();
+ System.exit(0);
+ });
+ return panel;
+ }
+
+ private Map<String, Object> buildMap(String implClass, TextArea value) {
+ Map<String, Object> input = new HashMap<>();
+ input.put("ImplClass", implClass);//:);
+ input.put("externalLookup", value != null ? lookup.getState() : lookupForList.getState());
+ input.put("nodeOverride", nodeOverride.getState());
+ input.put("latest", value != null ? latest.getState() : latestForList.getState());
+ input.put("fallback", value != null ? fallback.getState() : fallbackForList.getState());
+ input.put("nodeSpecific",
+ value != null ? nodeSpecific.getState() : nodeSpecificForList.getState());
+ input.put("tenant", tenantChoice.getSelectedItem());
+ input.put("namespace", namespaceChoice.getSelectedItem());
+ if (keyChoice.getItemCount() == 0) {
+ message("Error", "Key is missing.");
+ throw new RuntimeException("Error");
+ }
+ input.put("key", keyChoice.getSelectedItem());
+ input.put("value", value == null ? "" : value.getText());
+ return input;
+ }
+
+ /**
+ * Build card update panel panel.
+ *
+ * @param nodeOverride the node override
+ * @param value the value
+ * @return the panel
+ */
+ public Panel buildCardUpdatePanel(Checkbox nodeOverride, TextArea value) {
+ Panel panel = new Panel();
+ panel.setLayout(new BorderLayout());
+ Panel p1 = new Panel();
+ p1.setLayout(new GridLayout(1, 1));
+ p1.add(nodeOverride);
+ panel.add(p1, BorderLayout.NORTH);
+ panel.add(value, BorderLayout.CENTER);
+ Panel bottom = new Panel();
+ bottom.setLayout(new GridLayout(1, 5));
+ bottom.add(new Label());
+ Button button = null;
+ bottom.add(button = new Button("UPDATE"));
+ button.addActionListener((actionListener) -> {
+ manager
+ .updateConfigurationValue(buildMap("org.openecomp.config.type.ConfigurationUpdate", value));
+ message("Info", "Success");
+ });
+ bottom.add(new Label());
+ bottom.add(button = new Button("CLOSE"));
+ bottom.add(new Label());
+ panel.add(bottom, BorderLayout.SOUTH);
+ button.addActionListener((actionListener) -> {
+ close();
+ System.exit(0);
+ });
+ return panel;
+ }
+
+ /**
+ * Build card list panel panel.
+ *
+ * @param table the table
+ * @param latest the latest
+ * @param fallback the fallback
+ * @param nodeSpecific the node specific
+ * @param lookup the lookup
+ * @return the panel
+ */
+ public Panel buildCardListPanel(Panel table, Checkbox latest, Checkbox fallback,
+ Checkbox nodeSpecific, Checkbox lookup) {
+ Panel panel = new Panel();
+ panel.setLayout(new BorderLayout());
+ table.setLayout(new GridLayout(0, 2));
+ ScrollPane sp = new ScrollPane();
+ sp.add(table);
+ panel.add(sp, BorderLayout.CENTER);
+ Panel p1 = new Panel();
+ p1.setLayout(new GridLayout(1, 4));
+ p1.add(latest);
+ p1.add(fallback);
+ p1.add(lookup);
+ p1.add(nodeSpecific);
+ panel.add(p1, BorderLayout.NORTH);
+ Panel bottom = new Panel();
+ bottom.setLayout(new GridLayout(1, 5));
+ bottom.add(new Label());
+ Button button = null;
+ bottom.add(button = new Button("List"));
+ button.addActionListener((actionListener) -> populateKeyValue(
+ manager.listConfiguration(buildMap("org.openecomp.config.type.ConfigurationQuery", null))));
+ bottom.add(new Label());
+ bottom.add(button = new Button("CLOSE"));
+ bottom.add(new Label());
+ panel.add(bottom, BorderLayout.SOUTH);
+ button.addActionListener((actionListener) -> {
+ close();
+ System.exit(0);
+ });
+ return panel;
+ }
+
+ private void populateKeyValue(Map<String, String> collection) {
+ table.removeAll();
+ Set<String> keys = collection.keySet();
+ for (String key : keys) {
+ table.add(new Label(key));
+ table.add(new Label(collection.get(key)));
+ }
+ table.validate();
+ }
+
+ private void showCard(ItemEvent ie) {
+ if (ie.getStateChange() == ItemEvent.SELECTED) {
+ String usecase = (ie.getSource() instanceof Checkbox) ? ((Checkbox) ie.getSource()).getLabel()
+ : ((Checkbox) ie.getItem()).getLabel();
+ cards.show(cardPanel, usecase);
+ if (usecase.equals("List")) {
+ keyChoice.removeAll();
+ }
+ keyChoice.setEnabled(!usecase.equals("List"));
+ getKeysButton.setEnabled(!usecase.equals("List"));
+ }
+ }
+
+ private void close() {
+ try {
+ if (connector != null) {
+ connector.close();
+ connector = null;
+ vm.detach();
+ }
+ } catch (Exception exception) {
+ //Do nothing
+ }
+ }
+
+ private void connect() {
+ try {
+ close();
+ if (!validateHostPort()) {
+ return;
+ }
+ JMXServiceURL url = null;
+ if (localRemote.getSelectedCheckbox().getLabel().equals("Local")) {
+ url = new JMXServiceURL(
+ (vm = VirtualMachine.attach(pid.getSelectedItem())).getAgentProperties()
+ .getProperty("com.sun.management.jmxremote.localConnectorAddress"));
+ } else {
+ url = new JMXServiceURL(
+ "service:jmx:rmi:///jndi/rmi://" + host.getText() + ":" + port.getText() + "/jmxrmi");
+ }
+ Map<String, String[]> env = new HashMap<>();
+ String[] credentials = {user.getText(), password.getText()};
+ env.put(JMXConnector.CREDENTIALS, credentials);
+ connector = JMXConnectorFactory.connect(url, env);
+ MBeanServerConnection mbsc = connector.getMBeanServerConnection();
+ ObjectName mbeanName = new ObjectName("org.openecomp.jmx:name=SystemConfig");
+ manager = JMX.newMBeanProxy(mbsc, mbeanName, ConfigurationManager.class, true);
+ message("Message", "Success!!!");
+ populateTenants(manager.getTenants());
+ populateNamespaces(manager.getNamespaces());
+ } catch (Exception exception) {
+ message("Error", exception.getMessage());
+ }
+ }
+
+ private boolean validateHostPort() {
+ if (localRemote.getSelectedCheckbox().getLabel().equals("Local")) {
+ if (pid.getSelectedItem() == null || pid.getSelectedItem().trim().length() == 0
+ || !pid.getSelectedItem().matches("^[1-9][0-9]*$")) {
+ message("Error", "pid is mandatory numeric value greater than 0.");
+ return false;
+ }
+ } else {
+ if (host.getText() == null || host.getText().trim().length() == 0) {
+ message("Error", "Host is mandatory.");
+ return false;
+ }
+ if (port.getText() == null || port.getText().trim().length() == 0
+ || !port.getText().matches("^[1-9][0-9]*$")) {
+ message("Error", "Port is mandatory numeric value greater than 0.");
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private void populateTenants(Collection<String> collection) {
+ tenantChoice.removeAll();
+ for (String item : collection) {
+ tenantChoice.add(item);
+ }
+ }
+
+ private void populateNamespaces(Collection<String> collection) {
+ namespaceChoice.removeAll();
+ keyChoice.removeAll();
+ for (String item : collection) {
+ namespaceChoice.add(item);
+ }
+ }
+
+ private void populateKeys(Collection<String> collection) {
+ keyChoice.removeAll();
+ for (String item : collection) {
+ keyChoice.add(item);
+ }
+ }
+
+ private void message(String title, String text) {
+ Dialog dialog = new Dialog(container, title, true);
+ dialog.setLayout(new BorderLayout());
+ dialog.add(new Label(text), BorderLayout.CENTER);
+ Button ok = new Button("OK");
+ Panel panel = new Panel();
+ panel.setLayout(new GridLayout(1, 3));
+ panel.add(new Label());
+ panel.add(ok);
+ panel.add(new Label());
+ ok.addActionListener((actionListener) -> dialog.setVisible(false));
+ dialog.add(panel, BorderLayout.SOUTH);
+ dialog.pack();
+ centerDialog(dialog);
+ dialog.setVisible(true);
+ }
+
+ private void centreWindow(Frame frame) {
+ Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
+ int x1 = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
+ int y1 = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
+ frame.setLocation(x1, y1);
+ }
+
+ private void centerDialog(Dialog dialog) {
+ Dimension dimension = container.getSize();
+ container.getLocationOnScreen();
+ int x1 =
+ container.getLocationOnScreen().x + (int) ((dimension.getWidth() - dialog.getWidth()) / 2);
+ int y1 = container.getLocationOnScreen().y
+ + (int) ((dimension.getHeight() - dialog.getHeight()) / 2);
+ dialog.setLocation(x1, y1);
+ }
+
+ private void setWindowPosition(Frame window, int screen) {
+ GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
+ GraphicsDevice[] allDevices = env.getScreenDevices();
+ int topLeftX;
+ int topLeftY;
+ int screenX;
+ int screenY;
+ int windowPosX;
+ int windowPosY;
+
+ if (screen < allDevices.length && screen > -1) {
+ topLeftX = allDevices[screen].getDefaultConfiguration().getBounds().x;
+ topLeftY = allDevices[screen].getDefaultConfiguration().getBounds().y;
+
+ screenX = allDevices[screen].getDefaultConfiguration().getBounds().width;
+ screenY = allDevices[screen].getDefaultConfiguration().getBounds().height;
+ } else {
+ topLeftX = allDevices[0].getDefaultConfiguration().getBounds().x;
+ topLeftY = allDevices[0].getDefaultConfiguration().getBounds().y;
+
+ screenX = allDevices[0].getDefaultConfiguration().getBounds().width;
+ screenY = allDevices[0].getDefaultConfiguration().getBounds().height;
+ }
+
+ windowPosX = ((screenX - window.getWidth()) / 2) + topLeftX;
+ windowPosY = ((screenY - window.getHeight()) / 2) + topLeftY;
+
+ window.setLocation(windowPosX, windowPosY);
+ }
+
+ private void populateAvailablePids() {
+ pid.removeAll();
+ for (VirtualMachineDescriptor desc : VirtualMachine.list()) {
+ try {
+ VirtualMachine vm = null;
+ JMXServiceURL url = new JMXServiceURL(
+ (vm = VirtualMachine.attach(desc.id())).getAgentProperties()
+ .getProperty("com.sun.management.jmxremote.localConnectorAddress"));
+ Set set = JMXConnectorFactory.connect(url, null).getMBeanServerConnection()
+ .queryMBeans(new ObjectName("org.openecomp.jmx:name=SystemConfig"), null);
+ if (!set.isEmpty()) {
+ pid.add(desc.id());
+ }
+ vm.detach();
+ } catch (Exception exception) {
+ //do nothing
+ }
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml
new file mode 100644
index 0000000000..609e8abdf7
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml
@@ -0,0 +1,123 @@
+<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-configuration-management-core</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-configuration-management</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>2.5.4</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-configuration2</artifactId>
+ <version>2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>${commons.beanutils.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.3.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.github.adejanovski</groupId>
+ <artifactId>cassandra-jdbc-wrapper</artifactId>
+ <version>${cassandra.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-dbcp2</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-pool2</artifactId>
+ <version>2.4.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons.io.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.corn</groupId>
+ <artifactId>corn-cps</artifactId>
+ <version>1.1.7</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun</groupId>
+ <artifactId>tools</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.virtlink.commons</groupId>
+ <artifactId>commons-configuration2-jackson</artifactId>
+ <version>0.6.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>2.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-ext</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>javax.servlet-api</artifactId>
+ <version>3.1.0</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>2.8.1</version>
+ </dependency>
+
+
+ </dependencies>
+
+</project>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java
new file mode 100644
index 0000000000..c0a1e0ceb0
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java
@@ -0,0 +1,1152 @@
+package org.openecomp.config;
+
+import static org.openecomp.config.api.Hint.EXTERNAL_LOOKUP;
+import static org.openecomp.config.api.Hint.LATEST_LOOKUP;
+import static org.openecomp.config.api.Hint.NODE_SPECIFIC;
+
+import com.virtlink.commons.configuration2.jackson.JsonConfiguration;
+import net.sf.corn.cps.CPScanner;
+import net.sf.corn.cps.ResourceFilter;
+import org.apache.commons.configuration2.CompositeConfiguration;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.FileBasedConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.XMLConfiguration;
+import org.apache.commons.configuration2.builder.BasicConfigurationBuilder;
+import org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder;
+import org.apache.commons.configuration2.builder.fluent.Configurations;
+import org.apache.commons.configuration2.builder.fluent.Parameters;
+import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
+import org.apache.commons.configuration2.ex.ConfigurationException;
+import org.apache.commons.io.IOUtils;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.impl.AgglomerateConfiguration;
+import org.openecomp.config.impl.ConfigurationDataSource;
+import org.openecomp.config.impl.ConfigurationRepository;
+import org.openecomp.config.impl.YamlConfiguration;
+import org.openecomp.config.type.ConfigurationMode;
+import org.openecomp.config.type.ConfigurationType;
+
+import java.io.File;
+import java.lang.reflect.Field;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Deque;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.Stack;
+import java.util.TreeSet;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.LinkedTransferQueue;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TransferQueue;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import javax.sql.DataSource;
+
+/**
+ * The type Configuration utils.
+ */
+public class ConfigurationUtils {
+
+ /**
+ * Gets scheduled executor service.
+ *
+ * @return the scheduled executor service
+ */
+ public static ScheduledExecutorService getScheduledExecutorService() {
+ return Executors.newScheduledThreadPool(1, (r1) -> {
+ Thread thread = Executors.privilegedThreadFactory().newThread(r1);
+ thread.setDaemon(true);
+ return thread;
+ });
+ }
+
+ /**
+ * Gets thread factory.
+ *
+ * @return the thread factory
+ */
+ public static ThreadFactory getThreadFactory() {
+ return (r1) -> {
+ Thread thread = Executors.privilegedThreadFactory().newThread(r1);
+ thread.setDaemon(true);
+ return thread;
+ };
+ }
+
+ /**
+ * Gets all files.
+ *
+ * @param file the file
+ * @param recursive the recursive
+ * @param onlyDirectory the only directory
+ * @return the all files
+ */
+ public static Collection<File> getAllFiles(File file, boolean recursive, boolean onlyDirectory) {
+ ArrayList<File> collection = new ArrayList<>();
+ if (file.isDirectory() && file.exists()) {
+ File[] files = file.listFiles();
+ for (File innerFile : files) {
+ if (innerFile.isFile() && !onlyDirectory) {
+ collection.add(innerFile);
+ } else if (innerFile.isDirectory()) {
+ collection.add(innerFile);
+ if (recursive) {
+ collection.addAll(getAllFiles(innerFile, recursive, onlyDirectory));
+ }
+ }
+ }
+ }
+ return collection;
+ }
+
+ /**
+ * Gets comma saperated list.
+ *
+ * @param list the list
+ * @return the comma saperated list
+ */
+ public static String getCommaSaperatedList(List list) {
+ String toReturn = "";
+
+ for (Object obj : list) {
+ if (!toReturn.trim().isEmpty()) {
+ toReturn += ",";
+ }
+ toReturn += obj;
+ }
+
+ return toReturn;
+ }
+
+ /**
+ * Gets comma saperated list.
+ *
+ * @param list the list
+ * @return the comma saperated list
+ */
+ public static String getCommaSaperatedList(String[] list) {
+ return getCommaSaperatedList(list == null ? Arrays.asList() : Arrays.asList(list));
+ }
+
+ /**
+ * Gets config type.
+ *
+ * @param url the url
+ * @return the config type
+ */
+ public static ConfigurationType getConfigType(URL url) {
+ return Enum.valueOf(ConfigurationType.class,
+ url.getFile().substring(url.getFile().lastIndexOf('.') + 1).toUpperCase());
+ }
+
+ /**
+ * Gets config type.
+ *
+ * @param file the file
+ * @return the config type
+ */
+ public static ConfigurationType getConfigType(File file) {
+ return Enum.valueOf(ConfigurationType.class,
+ file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf('.') + 1)
+ .toUpperCase());
+ }
+
+ /**
+ * Is config boolean.
+ *
+ * @param url the url
+ * @return the boolean
+ */
+ public static boolean isConfig(URL url) {
+ return isConfig(url.getFile());
+ }
+
+ /**
+ * Is config boolean.
+ *
+ * @param file the file
+ * @return the boolean
+ */
+ public static boolean isConfig(File file) {
+ return file != null && file.exists() && isConfig(file.getName());
+ }
+
+ /**
+ * Is config boolean.
+ *
+ * @param file the file
+ * @return the boolean
+ */
+ public static boolean isConfig(String file) {
+ file = file.toUpperCase().substring(file.lastIndexOf('!') + 1);
+ file = file.substring(file.lastIndexOf('/') + 1);
+ return file.matches(
+ "CONFIG(-\\w*){0,1}(-" + "(" + ConfigurationMode.OVERRIDE + "|" + ConfigurationMode.MERGE
+ + "|" + ConfigurationMode.UNION + ")){0,1}" + "\\.("
+ + ConfigurationType.PROPERTIES.name() + "|" + ConfigurationType.XML.name() + "|"
+ + ConfigurationType.JSON.name() + "|" + ConfigurationType.YAML.name() + ")$")
+ || file.matches("CONFIG(.)*\\.(" + ConfigurationType.PROPERTIES.name() + "|"
+ + ConfigurationType.XML.name() + "|" + ConfigurationType.JSON.name() + "|"
+ + ConfigurationType.YAML.name() + ")$");
+ }
+
+ /**
+ * Gets namespace.
+ *
+ * @param url the url
+ * @return the namespace
+ */
+ public static String getNamespace(URL url) {
+ String namespace = getNamespace(getConfiguration(url));
+ if (namespace != null) {
+ return namespace.toUpperCase();
+ }
+ return getNamespace(url.getFile().toUpperCase());
+ }
+
+ /**
+ * Gets namespace.
+ *
+ * @param file the file
+ * @return the namespace
+ */
+ public static String getNamespace(File file) {
+ String namespace = getNamespace(getConfiguration(file));
+ if (namespace != null) {
+ return namespace.toUpperCase();
+ }
+ return getNamespace(file.getName().toUpperCase());
+ }
+
+ private static String getNamespace(Configuration config) {
+ return config.getString(Constants.NAMESPACE_KEY) == null ? null
+ : config.getString(Constants.NAMESPACE_KEY).toUpperCase();
+ }
+
+ /**
+ * Gets namespace.
+ *
+ * @param file the file
+ * @return the namespace
+ */
+ public static String getNamespace(String file) {
+ file = file.toUpperCase().substring(file.lastIndexOf('!') + 1);
+ file = file.substring(file.lastIndexOf('/') + 1);
+ Pattern pattern = Pattern.compile(
+ "CONFIG(-\\w*){0,1}(-" + "(" + ConfigurationMode.OVERRIDE + "|" + ConfigurationMode.MERGE
+ + "|" + ConfigurationMode.UNION + ")){0,1}" + "\\.("
+ + ConfigurationType.PROPERTIES.name() + "|" + ConfigurationType.XML.name() + "|"
+ + ConfigurationType.JSON.name() + "|" + ConfigurationType.YAML.name() + ")$");
+ Matcher matcher = pattern.matcher(file);
+ boolean b1 = matcher.matches();
+ if (b1) {
+ if (matcher.group(1) != null) {
+ String moduleName = matcher.group(1).substring(1);
+ return moduleName.equalsIgnoreCase(ConfigurationMode.OVERRIDE.name())
+ || moduleName.equalsIgnoreCase(ConfigurationMode.UNION.name())
+ || moduleName.equalsIgnoreCase(ConfigurationMode.MERGE.name())
+ ? Constants.DEFAULT_NAMESPACE : moduleName;
+ } else {
+ return Constants.DEFAULT_NAMESPACE;
+ }
+ } else if (isConfig(file)) {
+ return Constants.DEFAULT_NAMESPACE;
+ }
+
+ return null;
+ }
+
+ /**
+ * Gets merge strategy.
+ *
+ * @param url the url
+ * @return the merge strategy
+ */
+ public static ConfigurationMode getMergeStrategy(URL url) {
+ String configMode = getMergeStrategy(getConfiguration(url));
+ if (configMode != null) {
+ try {
+ return Enum.valueOf(ConfigurationMode.class, configMode);
+ } catch (Exception exception) {
+ //do nothing
+ }
+ }
+ return getMergeStrategy(url.getFile().toUpperCase());
+ }
+
+ private static String getMergeStrategy(Configuration config) {
+ return config.getString(Constants.MODE_KEY) == null ? null
+ : config.getString(Constants.MODE_KEY).toUpperCase();
+ }
+
+ /**
+ * Gets merge strategy.
+ *
+ * @param file the file
+ * @return the merge strategy
+ */
+ public static ConfigurationMode getMergeStrategy(File file) {
+ String configMode = getMergeStrategy(getConfiguration(file));
+ if (configMode != null) {
+ try {
+ return Enum.valueOf(ConfigurationMode.class, configMode);
+ } catch (Exception exception) {
+ //do nothing
+ }
+ }
+ return getMergeStrategy(file.getName().toUpperCase());
+ }
+
+ /**
+ * Gets merge strategy.
+ *
+ * @param file the file
+ * @return the merge strategy
+ */
+ public static ConfigurationMode getMergeStrategy(String file) {
+ file = file.toUpperCase().substring(file.lastIndexOf('!') + 1);
+ file = file.substring(file.lastIndexOf('/') + 1);
+ Pattern pattern = Pattern.compile(
+ "CONFIG(-\\w*){0,1}(-" + "(" + ConfigurationMode.OVERRIDE + "|" + ConfigurationMode.MERGE
+ + "|" + ConfigurationMode.UNION + ")){0,1}" + "\\.("
+ + ConfigurationType.PROPERTIES.name() + "|" + ConfigurationType.XML.name() + "|"
+ + ConfigurationType.JSON.name() + "|" + ConfigurationType.YAML.name() + ")$");
+ Matcher matcher = pattern.matcher(file);
+ boolean b1 = matcher.matches();
+ if (b1) {
+ for (int i = 1; i <= matcher.groupCount(); i++) {
+ String modeName = matcher.group(i);
+ if (modeName != null) {
+ modeName = modeName.substring(1);
+ }
+ try {
+ return Enum.valueOf(ConfigurationMode.class, modeName);
+ } catch (Exception exception) {
+ //do nothing
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Gets configuration.
+ *
+ * @param url the url
+ * @return the configuration
+ */
+ public static FileBasedConfiguration getConfiguration(URL url) {
+ FileBasedConfiguration builder = null;
+ try {
+ switch (ConfigurationUtils.getConfigType(url)) {
+ case PROPERTIES:
+ builder = new Configurations().fileBased(PropertiesConfiguration.class, url);
+ break;
+ case XML:
+ builder = new Configurations().fileBased(XMLConfiguration.class, url);
+ break;
+ case JSON:
+ builder = new Configurations().fileBased(JsonConfiguration.class, url);
+ break;
+ case YAML:
+ builder = new Configurations().fileBased(YamlConfiguration.class, url);
+ break;
+ default:
+ }
+ } catch (ConfigurationException exception) {
+ exception.printStackTrace();
+ }
+ return builder;
+ }
+
+ /**
+ * Gets configuration.
+ *
+ * @param url the url
+ * @return the configuration
+ */
+ public static FileBasedConfiguration getConfiguration(File url) {
+ FileBasedConfiguration builder = null;
+ try {
+ switch (ConfigurationUtils.getConfigType(url)) {
+ case PROPERTIES:
+ builder = new Configurations().fileBased(PropertiesConfiguration.class, url);
+ break;
+ case XML:
+ builder = new Configurations().fileBased(XMLConfiguration.class, url);
+ break;
+ case JSON:
+ builder = new Configurations().fileBased(JsonConfiguration.class, url);
+ break;
+ case YAML:
+ builder = new Configurations().fileBased(YamlConfiguration.class, url);
+ break;
+ default:
+ }
+ } catch (ConfigurationException exception) {
+ exception.printStackTrace();
+ }
+ return builder;
+ }
+
+ /**
+ * Gets collection generic type.
+ *
+ * @param field the field
+ * @return the collection generic type
+ */
+ public static Class getCollectionGenericType(Field field) {
+ Type type = field.getGenericType();
+
+ if (type instanceof ParameterizedType) {
+
+ ParameterizedType paramType = (ParameterizedType) type;
+ Type[] arr = paramType.getActualTypeArguments();
+
+ for (Type tp : arr) {
+ Class<?> clzz = (Class<?>) tp;
+ if (isWrapperClass(clzz)) {
+ return clzz;
+ } else {
+ throw new RuntimeException("Collection of type " + clzz.getName() + " not supported.");
+ }
+ }
+ }
+ return String[].class;
+ }
+
+ /**
+ * Gets array class.
+ *
+ * @param clazz the clazz
+ * @return the array class
+ */
+ public static Class getArrayClass(Class clazz) {
+ switch (clazz.getName()) {
+ case "java.lang.Byte":
+ return Byte[].class;
+ case "java.lang.Short":
+ return Short[].class;
+ case "java.lang.Integer":
+ return Integer[].class;
+ case "java.lang.Long":
+ return Long[].class;
+ case "java.lang.Float":
+ return Float[].class;
+ case "java.lang.Double":
+ return Double[].class;
+ case "java.lang.Boolean":
+ return Boolean[].class;
+ case "java.lang.Character":
+ return Character[].class;
+ case "java.lang.String":
+ return String[].class;
+ default:
+ }
+ return null;
+ }
+
+ /**
+ * Gets all class path resources.
+ *
+ * @return the all class path resources
+ */
+ public static List<URL> getAllClassPathResources() {
+ return CPScanner.scanResources(new ResourceFilter());
+ }
+
+ /**
+ * Execute ddlsql boolean.
+ *
+ * @param sql the sql
+ * @return the boolean
+ * @throws Exception the exception
+ */
+ public static boolean executeDdlSql(String sql) throws Exception {
+ DataSource datasource = ConfigurationDataSource.lookup();
+ try (Connection con = datasource.getConnection(); Statement stmt = con.createStatement()) {
+ stmt.executeQuery(sql);
+ } catch (Exception exception) {
+ System.err.println("Datasource initialization error. Configuration management will be using in-memory persistence.");
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Gets configuration builder.
+ *
+ * @param url the url
+ * @return the configuration builder
+ */
+ public static BasicConfigurationBuilder<FileBasedConfiguration> getConfigurationBuilder(URL url) {
+ ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration> builder = null;
+ switch (ConfigurationUtils.getConfigType(url)) {
+ case PROPERTIES:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ PropertiesConfiguration.class);
+ break;
+ case XML:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ XMLConfiguration.class);
+ break;
+ case JSON:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ JsonConfiguration.class);
+ break;
+ case YAML:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ YamlConfiguration.class);
+ break;
+ default:
+ }
+ builder.configure(new Parameters().fileBased().setURL(url)
+ .setListDelimiterHandler(new DefaultListDelimiterHandler(',')));
+ return builder;
+ }
+
+ /**
+ * Gets configuration builder.
+ *
+ * @param file the file
+ * @param autoSave the auto save
+ * @return the configuration builder
+ */
+ public static BasicConfigurationBuilder<FileBasedConfiguration> getConfigurationBuilder(File file,
+ boolean autoSave) {
+ ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration> builder = null;
+ switch (ConfigurationUtils.getConfigType(file)) {
+ case PROPERTIES:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ PropertiesConfiguration.class);
+ break;
+ case XML:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ XMLConfiguration.class);
+ break;
+ case JSON:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ JsonConfiguration.class);
+ break;
+ case YAML:
+ builder = new ReloadingFileBasedConfigurationBuilder<FileBasedConfiguration>(
+ YamlConfiguration.class);
+ break;
+ default:
+ }
+ builder.configure(new Parameters().fileBased().setFile(file)
+ .setListDelimiterHandler(new DefaultListDelimiterHandler(',')));
+ builder.setAutoSave(autoSave);
+ return builder;
+ }
+
+
+ /**
+ * Execute select sql collection.
+ *
+ * @param sql the sql
+ * @param params the params
+ * @return the collection
+ * @throws Exception the exception
+ */
+ public static Collection<String> executeSelectSql(String sql, String[] params) throws Exception {
+ Collection<String> coll = new ArrayList<>();
+ DataSource datasource = ConfigurationDataSource.lookup();
+ try (Connection con = datasource.getConnection();
+ PreparedStatement stmt = con.prepareStatement(sql)) {
+ if (params != null) {
+ for (int i = 0; i < params.length; i++) {
+ stmt.setString(i + 1, params[i]);
+ }
+ }
+ ResultSet rs = stmt.executeQuery();
+ while (rs.next()) {
+ coll.add(rs.getString(1));
+ }
+ } catch (Exception exception) {
+ //exception.printStackTrace();
+ return null;
+ }
+ return coll;
+ }
+
+ /**
+ * Execute insert sql boolean.
+ *
+ * @param sql the sql
+ * @param params the params
+ * @return the boolean
+ * @throws Exception the exception
+ */
+ public static boolean executeInsertSql(String sql, Object[] params) throws Exception {
+ Collection<String> coll = new ArrayList<>();
+ DataSource datasource = ConfigurationDataSource.lookup();
+ try (Connection con = datasource.getConnection();
+ PreparedStatement stmt = con.prepareStatement(sql)) {
+ if (params != null) {
+ int counter = 0;
+ for (Object obj : params) {
+ if (obj == null) {
+ obj = "";
+ }
+ switch (obj.getClass().getName()) {
+ case "java.lang.String":
+ stmt.setString(++counter, obj.toString());
+ break;
+ case "java.lang.Integer":
+ stmt.setInt(++counter, ((Integer) obj).intValue());
+ break;
+ case "java.lang.Long":
+ stmt.setLong(++counter, ((Long) obj).longValue());
+ break;
+ default:
+ stmt.setString(++counter, obj.toString());
+ break;
+ }
+ }
+ }
+ stmt.executeUpdate();
+ return true;
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ return false;
+ }
+
+ /**
+ * Read t.
+ *
+ * @param <T> the type parameter
+ * @param config the config
+ * @param clazz the clazz
+ * @param keyPrefix the key prefix
+ * @return the t
+ * @throws Exception the exception
+ */
+ public static <T> T read(Configuration config, Class<T> clazz, String keyPrefix)
+ throws Exception {
+ org.openecomp.config.api.Config confAnnot =
+ clazz.getAnnotation(org.openecomp.config.api.Config.class);
+ if (confAnnot != null) {
+ keyPrefix += (confAnnot.key() + ".");
+ }
+ T objToReturn = clazz.newInstance();
+ for (Field field : clazz.getDeclaredFields()) {
+ org.openecomp.config.api.Config fieldConfAnnot =
+ field.getAnnotation(org.openecomp.config.api.Config.class);
+ if (fieldConfAnnot != null) {
+ field.setAccessible(true);
+ field.set(objToReturn, config.getProperty(keyPrefix + fieldConfAnnot.key()));
+ } else if (field.getType().getAnnotation(org.openecomp.config.api.Config.class) != null) {
+ field.set(objToReturn, read(config, field.getType(), keyPrefix));
+ }
+ }
+ return objToReturn;
+ }
+
+ /**
+ * Gets db configuration builder.
+ *
+ * @param configName the config name
+ * @return the db configuration builder
+ * @throws Exception the exception
+ */
+ public static BasicConfigurationBuilder<AgglomerateConfiguration> getDbConfigurationBuilder(
+ String configName) throws Exception {
+ Configuration dbConfig = ConfigurationRepository.lookup()
+ .getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE);
+ BasicConfigurationBuilder<AgglomerateConfiguration> builder =
+ new BasicConfigurationBuilder<AgglomerateConfiguration>(AgglomerateConfiguration.class);
+ builder.configure(
+ new Parameters().database()
+ .setDataSource(ConfigurationDataSource.lookup())
+ .setTable(dbConfig.getString("config.Table"))
+ .setKeyColumn(dbConfig.getString("configKey"))
+ .setValueColumn(dbConfig.getString("configValue"))
+ .setConfigurationNameColumn(dbConfig.getString("configNameColumn"))
+ .setConfigurationName(configName)
+ .setAutoCommit(true)
+ );
+ return builder;
+ }
+
+ /**
+ * Gets property.
+ *
+ * @param config the config
+ * @param key the key
+ * @param processingHints the processing hints
+ * @return the property
+ */
+ public static Object getProperty(Configuration config, String key, int processingHints) {
+ if (!isDirectLookup(processingHints)) {
+ if (config instanceof AgglomerateConfiguration) {
+ return ((AgglomerateConfiguration) config).getPropertyValue(key);
+ } else if (config instanceof CompositeConfiguration) {
+ CompositeConfiguration conf = (CompositeConfiguration) config;
+ for (int i = 0; i < conf.getNumberOfConfigurations(); i++) {
+ if (conf.getConfiguration(i) instanceof AgglomerateConfiguration) {
+ return ((AgglomerateConfiguration) conf.getConfiguration(i)).getPropertyValue(key);
+ } else if (isNodeSpecific(processingHints)) {
+ Object obj = conf.getConfiguration(i).getProperty(key);
+ if (obj != null) {
+ return obj;
+ }
+ }
+ }
+ }
+ }
+ return config.getProperty(key);
+ }
+
+ /**
+ * Gets primitive array.
+ *
+ * @param collection the collection
+ * @param clazz the clazz
+ * @return the primitive array
+ */
+ public static Object getPrimitiveArray(Collection collection, Class clazz) {
+
+ if (clazz == int.class) {
+ int[] array = new int[collection.size()];
+ Object[] objArray = collection.toArray();
+ for (int i = 0; i < collection.size(); i++) {
+ array[i] = (int) objArray[i];
+ }
+ return array;
+ }
+ if (clazz == byte.class) {
+ byte[] array = new byte[collection.size()];
+ Object[] objArray = collection.toArray();
+ for (int i = 0; i < collection.size(); i++) {
+ array[i] = (byte) objArray[i];
+ }
+ return array;
+ }
+ if (clazz == short.class) {
+ short[] array = new short[collection.size()];
+ Object[] objArray = collection.toArray();
+ for (int i = 0; i < collection.size(); i++) {
+ array[i] = (short) objArray[i];
+ }
+ return array;
+ }
+ if (clazz == long.class) {
+ long[] array = new long[collection.size()];
+ Object[] objArray = collection.toArray();
+ for (int i = 0; i < collection.size(); i++) {
+ array[i] = (long) objArray[i];
+ }
+ return array;
+ }
+ if (clazz == float.class) {
+ float[] array = new float[collection.size()];
+ Object[] objArray = collection.toArray();
+ for (int i = 0; i < collection.size(); i++) {
+ array[i] = (float) objArray[i];
+ }
+ return array;
+ }
+ if (clazz == double.class) {
+ double[] array = new double[collection.size()];
+ Object[] objArray = collection.toArray();
+ for (int i = 0; i < collection.size(); i++) {
+ array[i] = (double) objArray[i];
+ }
+ return array;
+ }
+ if (clazz == boolean.class) {
+ boolean[] array = new boolean[collection.size()];
+ Object[] objArray = collection.toArray();
+ for (int i = 0; i < collection.size(); i++) {
+ array[i] = (boolean) objArray[i];
+ }
+ return array;
+ }
+ Object obj = null;
+ return obj;
+ }
+
+ /**
+ * Is wrapper class boolean.
+ *
+ * @param clazz the clazz
+ * @return the boolean
+ */
+ public static boolean isWrapperClass(Class clazz) {
+ return clazz == String.class || clazz == Boolean.class || clazz == Character.class
+ || Number.class.isAssignableFrom(clazz);
+ }
+
+ /**
+ * Gets collection string.
+ *
+ * @param input the input
+ * @return the collection string
+ */
+ public static String getCollectionString(String input) {
+ Pattern pattern = Pattern.compile("^\\[(.*)\\]$");
+ Matcher matcher = pattern.matcher(input);
+ if (matcher.matches()) {
+ input = matcher.group(1);
+ }
+ return input;
+ }
+
+ /**
+ * Is collection boolean.
+ *
+ * @param input the input
+ * @return the boolean
+ */
+ public static boolean isCollection(String input) {
+ Pattern pattern = Pattern.compile("^\\[(.*)\\]$");
+ Matcher matcher = pattern.matcher(input);
+ return matcher.matches();
+ }
+
+ /**
+ * Process variables if present string.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param data the data
+ * @return the string
+ */
+ public static String processVariablesIfPresent(String tenant, String namespace, String data) {
+ Pattern pattern = Pattern.compile("^.*\\$\\{(.*)\\}.*");
+ Matcher matcher = pattern.matcher(data);
+ if (matcher.matches()) {
+ String key = matcher.group(1);
+ if (key.toUpperCase().startsWith("ENV:")) {
+ String envValue = System.getenv(key.substring(4));
+ return processVariablesIfPresent(tenant, namespace, data.replaceAll("\\$\\{" + key + "\\}",
+ envValue == null ? "" : envValue.replace("\\", "\\\\")));
+ } else if (key.toUpperCase().startsWith("SYS:")) {
+ String sysValue = System.getProperty(key.substring(4));
+ return processVariablesIfPresent(tenant, namespace, data.replaceAll("\\$\\{" + key + "\\}",
+ sysValue == null ? "" : sysValue.replace("\\", "\\\\")));
+ } else {
+ String propertyValue = ConfigurationUtils.getCollectionString(
+ ConfigurationManager.lookup().getAsStringValues(tenant, namespace, key).toString());
+ return processVariablesIfPresent(tenant, namespace, data.replaceAll("\\$\\{" + key + "\\}",
+ propertyValue == null ? "" : propertyValue.replace("\\", "\\\\")));
+ }
+ } else {
+ return data;
+ }
+ }
+
+ /**
+ * Gets file contents.
+ *
+ * @param path the path
+ * @return the file contents
+ */
+ public static String getFileContents(String path) {
+ try {
+ if (path != null) {
+ return IOUtils.toString(new URL(path));
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * Gets file contents.
+ *
+ * @param path the path
+ * @return the file contents
+ */
+ public static String getFileContents(Path path) {
+ try {
+ if (path != null) {
+ return new String(Files.readAllBytes(path));
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * Gets concrete collection.
+ *
+ * @param clazz the clazz
+ * @return the concrete collection
+ */
+ public static Collection getConcreteCollection(Class clazz) {
+ Collection collection = null;
+
+ switch (clazz.getName()) {
+ case "java.util.Collection":
+ case "java.util.List":
+ return new ArrayList<>();
+ case "java.util.Set":
+ return new HashSet<>();
+ case "java.util.SortedSet":
+ return new TreeSet<>();
+ case "java.util.Queue":
+ return new ConcurrentLinkedQueue<>();
+ case "java.util.Deque":
+ return new ArrayDeque<>();
+ case "java.util.concurrent.TransferQueue":
+ return new LinkedTransferQueue<>();
+ case "java.util.concurrent.BlockingQueue":
+ return new LinkedBlockingQueue<>();
+ default:
+ }
+
+ return collection;
+ }
+
+ /**
+ * Gets default for.
+ *
+ * @param clazz the clazz
+ * @return the default for
+ */
+ public static Object getDefaultFor(Class clazz) {
+ if (byte.class == clazz) {
+ return new Byte("0");
+ } else if (short.class == clazz) {
+ return new Short("0");
+ } else if (int.class == clazz) {
+ return new Integer("0");
+ } else if (float.class == clazz) {
+ return new Float("0");
+ } else if (long.class == clazz) {
+ return new Long("0");
+ } else if (double.class == clazz) {
+ return new Double("0");
+ } else if (boolean.class == clazz) {
+ return Boolean.FALSE;
+ }
+ return new Character((char) 0);
+ }
+
+ /**
+ * Gets compatible collection for abstract def.
+ *
+ * @param clazz the clazz
+ * @return the compatible collection for abstract def
+ */
+ public static Collection getCompatibleCollectionForAbstractDef(Class clazz) {
+ if (BlockingQueue.class.isAssignableFrom(clazz)) {
+ return getConcreteCollection(BlockingQueue.class);
+ }
+ if (TransferQueue.class.isAssignableFrom(clazz)) {
+ return getConcreteCollection(TransferQueue.class);
+ }
+ if (Deque.class.isAssignableFrom(clazz)) {
+ return getConcreteCollection(Deque.class);
+ }
+ if (Queue.class.isAssignableFrom(clazz)) {
+ return getConcreteCollection(Queue.class);
+ }
+ if (SortedSet.class.isAssignableFrom(clazz)) {
+ return getConcreteCollection(SortedSet.class);
+ }
+ if (Set.class.isAssignableFrom(clazz)) {
+ return getConcreteCollection(Set.class);
+ }
+ if (List.class.isAssignableFrom(clazz)) {
+ return getConcreteCollection(List.class);
+ }
+ return null;
+ }
+
+ /**
+ * Gets configuration repository key.
+ *
+ * @param array the array
+ * @return the configuration repository key
+ */
+ public static String getConfigurationRepositoryKey(String[] array) {
+ Stack<String> stack = new Stack<>();
+ stack.push(Constants.DEFAULT_TENANT);
+ for (String element : array) {
+ stack.push(element);
+ }
+ String toReturn = stack.pop();
+ return stack.pop() + Constants.KEY_ELEMENTS_DELEMETER + toReturn;
+ }
+
+ /**
+ * Gets configuration repository key.
+ *
+ * @param file the file
+ * @return the configuration repository key
+ */
+ public static String getConfigurationRepositoryKey(File file) {
+ return getConfigurationRepositoryKey(
+ ConfigurationUtils.getNamespace(file).split(Constants.TENANT_NAMESPACE_SAPERATOR));
+ }
+
+ /**
+ * Gets configuration repository key.
+ *
+ * @param url the url
+ * @return the configuration repository key
+ */
+ public static String getConfigurationRepositoryKey(URL url) {
+ return getConfigurationRepositoryKey(
+ ConfigurationUtils.getNamespace(url).split(Constants.TENANT_NAMESPACE_SAPERATOR));
+ }
+
+ /**
+ * To map linked hash map.
+ *
+ * @param config the config
+ * @return the linked hash map
+ */
+ public static LinkedHashMap toMap(Configuration config) {
+ Iterator<String> iterator = config.getKeys();
+ LinkedHashMap<String, String> map = new LinkedHashMap<>();
+ while (iterator.hasNext()) {
+ String key = iterator.next();
+ if (!(key.equals(Constants.MODE_KEY) || key.equals(Constants.NAMESPACE_KEY)
+ || key.equals(Constants.LOAD_ORDER_KEY))) {
+ map.put(key, config.getProperty(key).toString());
+ }
+ }
+
+ return map;
+ }
+
+ /**
+ * Diff map.
+ *
+ * @param orig the orig
+ * @param latest the latest
+ * @return the map
+ */
+ public static Map diff(LinkedHashMap orig, LinkedHashMap latest) {
+ orig = new LinkedHashMap<>(orig);
+ latest = new LinkedHashMap<>(latest);
+ List<String> set = new ArrayList(orig.keySet());
+ for (String key : set) {
+ if (latest.remove(key, orig.get(key))) {
+ orig.remove(key);
+ }
+ }
+ Set<String> keys = latest.keySet();
+ for (String key : keys) {
+ orig.remove(key);
+ }
+ set = new ArrayList(orig.keySet());
+ for (String key : set) {
+ latest.put(key, "");
+ }
+ return new HashMap<>(latest);
+ }
+
+ /**
+ * Is array boolean.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param processingHints the processing hints
+ * @return the boolean
+ * @throws Exception the exception
+ */
+ public static boolean isArray(String tenant, String namespace, String key, int processingHints)
+ throws Exception {
+ Object obj = ConfigurationUtils
+ .getProperty(ConfigurationRepository.lookup().getConfigurationFor(tenant, namespace), key,
+ processingHints);
+ return (obj == null) ? false : ConfigurationUtils.isCollection(obj.toString());
+ }
+
+ /**
+ * Is direct lookup boolean.
+ *
+ * @param hints the hints
+ * @return the boolean
+ */
+ public static boolean isDirectLookup(int hints) {
+ return (hints & LATEST_LOOKUP.value()) == LATEST_LOOKUP.value();
+ }
+
+ /**
+ * Is external lookup boolean.
+ *
+ * @param hints the hints
+ * @return the boolean
+ */
+ public static boolean isExternalLookup(int hints) {
+ return (hints & EXTERNAL_LOOKUP.value()) == EXTERNAL_LOOKUP.value();
+ }
+
+ /**
+ * Is node specific boolean.
+ *
+ * @param hints the hints
+ * @return the boolean
+ */
+ public static boolean isNodeSpecific(int hints) {
+ return (hints & NODE_SPECIFIC.value()) == NODE_SPECIFIC.value();
+ }
+
+ public static boolean isZeroLengthArray(Class clazz, Object obj){
+ if (clazz.isArray() && clazz.getComponentType().isPrimitive()){
+ if (clazz.getComponentType()==int.class){
+ return ((int[])obj).length==0;
+ }else if (clazz.getComponentType()==byte.class){
+ return ((byte[])obj).length==0;
+ }else if (clazz.getComponentType()==short.class){
+ return ((short[])obj).length==0;
+ }else if (clazz.getComponentType()==float.class){
+ return ((float[])obj).length==0;
+ }else if (clazz.getComponentType()==boolean.class){
+ return ((boolean[])obj).length==0;
+ }else if (clazz.getComponentType()==double.class){
+ return ((double[])obj).length==0;
+ }else if (clazz.getComponentType()==long.class){
+ return ((long[])obj).length==0;
+ }else{
+ return ((Object[])obj).length==0;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks if value is blank
+ * @param value
+ * @return
+ */
+ public static boolean isBlank(String value){
+ return value==null || value.trim().length()==0;
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/Constants.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/Constants.java
new file mode 100644
index 0000000000..b35a5a8d83
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/Constants.java
@@ -0,0 +1,14 @@
+package org.openecomp.config;
+
+public class Constants {
+
+ public static final String DEFAULT_TENANT = "GLOBAL";
+ public static final String DEFAULT_NAMESPACE = "COMMON";
+ public static final String DB_NAMESPACE = "SYSTEM";
+ public static final String KEY_ELEMENTS_DELEMETER = "-";
+ public static final String TENANT_NAMESPACE_SAPERATOR = ":";
+ public static final String NAMESPACE_KEY = "_config.namespace";
+ public static final String MODE_KEY = "_config.mergeStrategy";
+ public static final String MBEAN_NAME = "org.openecomp.jmx:name=SystemConfig";
+ public final static String LOAD_ORDER_KEY="_config.loadOrder";
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/NonConfigResource.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/NonConfigResource.java
new file mode 100644
index 0000000000..f4c1c16dc5
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/NonConfigResource.java
@@ -0,0 +1,95 @@
+package org.openecomp.config;
+
+import java.io.File;
+import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.function.Predicate;
+
+/**
+ * The type Non config resource.
+ */
+public class NonConfigResource {
+
+ private static Set<URL> urls = new HashSet<>();
+ private static Set<File> files = new HashSet<>();
+
+ /**
+ * Add.
+ *
+ * @param url the url
+ */
+ public static void add(URL url) {
+ urls.add(url);
+ }
+
+ /**
+ * Add.
+ *
+ * @param file the file
+ */
+ public static void add(File file) {
+ files.add(file);
+ }
+
+ /**
+ * Locate path.
+ *
+ * @param resource the resource
+ * @return the path
+ */
+ public static Path locate(String resource) {
+ try {
+ if (resource != null) {
+ File file = new File(resource);
+ if (file.exists()) {
+ return Paths.get(resource);
+ }
+ for (File availableFile : files) {
+ if (availableFile.getAbsolutePath().endsWith(resource) && availableFile.exists()) {
+ return Paths.get(availableFile.getAbsolutePath());
+ }
+ }
+ if (System.getProperty("node.config.location") != null) {
+ Path path = locate(new File(System.getProperty("node.config.location")), resource);
+ if (path != null) {
+ return path;
+ }
+ }
+ if (System.getProperty("config.location") != null) {
+ Path path = locate(new File(System.getProperty("config.location")), resource);
+ if (path != null) {
+ return path;
+ }
+ }
+ for (URL url : urls) {
+ if (url.getFile().endsWith(resource)) {
+ return Paths.get(url.toURI());
+ }
+ }
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ return null;
+ }
+
+ private static Path locate(File root, String resource) {
+ if (root.exists()) {
+ Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false);
+ Predicate<File> f1 = ConfigurationUtils::isConfig;
+ for (File file : filesystemResources) {
+ if (!f1.test(file)) {
+ add(file);
+ if (file.getAbsolutePath().endsWith(resource)) {
+ return Paths.get(file.getAbsolutePath());
+ }
+ }
+ }
+ }
+ return null;
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AgglomerateConfiguration.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AgglomerateConfiguration.java
new file mode 100644
index 0000000000..d50948c201
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AgglomerateConfiguration.java
@@ -0,0 +1,32 @@
+package org.openecomp.config.impl;
+
+import org.apache.commons.configuration2.DatabaseConfiguration;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * The type Agglomerate configuration.
+ */
+public class AgglomerateConfiguration extends DatabaseConfiguration {
+
+ private final Map<String, Object> store =
+ Collections.synchronizedMap(new WeakHashMap<String, Object>());
+
+ /**
+ * Gets property value.
+ *
+ * @param key the key
+ * @return the property value
+ */
+ public Object getPropertyValue(String key) {
+ Object objToReturn = null;
+ objToReturn = store.get(key);
+ if (objToReturn == null && !store.containsKey(key)) {
+ store.put(key, objToReturn = super.getProperty(key));
+ }
+ return objToReturn;
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AggregateConfiguration.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AggregateConfiguration.java
new file mode 100644
index 0000000000..de5a189775
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/AggregateConfiguration.java
@@ -0,0 +1,164 @@
+package org.openecomp.config.impl;
+
+import org.apache.commons.configuration2.CombinedConfiguration;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.tree.MergeCombiner;
+import org.apache.commons.configuration2.tree.OverrideCombiner;
+import org.apache.commons.configuration2.tree.UnionCombiner;
+import static org.openecomp.config.Constants.LOAD_ORDER_KEY;
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.type.ConfigurationMode;
+
+import java.io.File;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.*;
+
+/**
+ * The type Aggregate configuration.
+ */
+public final class AggregateConfiguration {
+
+ private Map<String, Configuration> rootConfig = new HashMap<>();
+ private Map<String, Configuration> unionConfig = new HashMap<>();
+ private Map<String, Configuration> mergeConfig = new HashMap<>();
+ private Map<String, Configuration> overrideConfig = new LinkedHashMap<>();
+
+ {
+ if (!Thread.currentThread().getStackTrace()[2].getClassName()
+ .equals(ConfigurationImpl.class.getName())) {
+ throw new RuntimeException("Illegal access.");
+ }
+ }
+
+ private void addConfig(String path, ConfigurationMode configMode, Configuration config) {
+ if (configMode != null) {
+ switch (configMode) {
+ case MERGE:
+ mergeConfig.put(path, config);
+ break;
+ case OVERRIDE:
+ overrideConfig.put(path, config);
+ break;
+ case UNION:
+ unionConfig.put(path, config);
+ break;
+ default:
+ }
+ } else {
+ rootConfig.put(path, config);
+ }
+ }
+
+ /**
+ * Add config.
+ *
+ * @param file the file
+ * @throws Exception the exception
+ */
+ public void addConfig(File file) throws Exception {
+ addConfig(file.getAbsolutePath().toUpperCase(), ConfigurationUtils.getMergeStrategy(file),
+ ConfigurationUtils.getConfigurationBuilder(file, false).getConfiguration());
+ }
+
+ /**
+ * Add config.
+ *
+ * @param url the url
+ * @throws Exception the exception
+ */
+ public void addConfig(URL url) throws Exception {
+ addConfig(url.getFile().toUpperCase(), ConfigurationUtils.getMergeStrategy(url),
+ ConfigurationUtils.getConfigurationBuilder(url).getConfiguration());
+ }
+
+ /**
+ * Remove config.
+ *
+ * @param file the file
+ */
+ public void removeConfig(File file) {
+ String key = file.getAbsolutePath().toUpperCase();
+ if (rootConfig.containsKey(key)) {
+ rootConfig.remove(key);
+ } else if (mergeConfig.containsKey(key)) {
+ mergeConfig.remove(key);
+ } else if (unionConfig.containsKey(key)) {
+ unionConfig.remove(key);
+ } else if (overrideConfig.containsKey(key)) {
+ overrideConfig.remove(key);
+ }
+ }
+
+ /**
+ * Contains config boolean.
+ *
+ * @param file the file
+ * @return the boolean
+ */
+ public boolean containsConfig(File file) {
+ String key = file.getAbsolutePath().toUpperCase();
+ return rootConfig.containsKey(key) || mergeConfig.containsKey(key)
+ || unionConfig.containsKey(key) || overrideConfig.containsKey(key);
+ }
+
+ /**
+ * Gets final configuration.
+ *
+ * @return the final configuration
+ */
+ public Configuration getFinalConfiguration() {
+ CombinedConfiguration ccRoot = new CombinedConfiguration(new MergeCombiner());
+ ArrayList<Configuration> tempList = new ArrayList<>(rootConfig.values());
+ Collections.sort(tempList, this::sortForMerge);
+ for (Configuration conf : tempList) {
+ ccRoot.addConfiguration(conf);
+ }
+ CombinedConfiguration ccMergeRoot = new CombinedConfiguration(new MergeCombiner());
+ ccMergeRoot.addConfiguration(ccRoot);
+ tempList = new ArrayList<>(mergeConfig.values());
+ Collections.sort(tempList, this::sortForMerge);
+ for (Configuration conf : tempList) {
+ ccMergeRoot.addConfiguration(conf);
+ }
+ CombinedConfiguration ccUnionRoot = new CombinedConfiguration(new UnionCombiner());
+ ccUnionRoot.addConfiguration(ccMergeRoot);
+ for (Configuration conf : unionConfig.values()) {
+ ccUnionRoot.addConfiguration(conf);
+ }
+ ArrayList<Configuration> tempOverrideConfigs = new ArrayList<>(overrideConfig.values());
+ Collections.reverse(tempOverrideConfigs);
+ Collections.sort(tempOverrideConfigs, this::sortForOverride);
+ CombinedConfiguration ccOverrideRoot = new CombinedConfiguration(new OverrideCombiner());
+ for (Configuration conf : tempOverrideConfigs) {
+ ccOverrideRoot.addConfiguration(conf);
+ }
+ ccOverrideRoot.addConfiguration(ccUnionRoot);
+ return ccOverrideRoot;
+ }
+
+ private int sortForOverride(Configuration conf1, Configuration conf2){
+ String order1 = conf1.getString(LOAD_ORDER_KEY);
+ String order2 = conf2.getString(LOAD_ORDER_KEY);
+ if (ConfigurationUtils.isBlank(order1) || !order1.trim().matches("\\d+")){
+ order1 = "0";
+ }
+ if (ConfigurationUtils.isBlank(order2) || !order2.trim().matches("\\d+")){
+ order2 = "0";
+ }
+ return Integer.parseInt(order2.trim())-Integer.parseInt(order1.trim());
+ }
+
+ private int sortForMerge(Configuration conf1, Configuration conf2){
+ String order1 = conf1.getString(LOAD_ORDER_KEY);
+ String order2 = conf2.getString(LOAD_ORDER_KEY);
+ if (ConfigurationUtils.isBlank(order1) || !order1.trim().matches("\\d+")){
+ order1 = "0";
+ }
+ if (ConfigurationUtils.isBlank(order2) || !order2.trim().matches("\\d+")){
+ order2 = "0";
+ }
+ return Integer.parseInt(order1.trim())-Integer.parseInt(order2.trim());
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/CliConfigurationImpl.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/CliConfigurationImpl.java
new file mode 100644
index 0000000000..3bb43ab396
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/CliConfigurationImpl.java
@@ -0,0 +1,354 @@
+package org.openecomp.config.impl;
+
+import static org.openecomp.config.Constants.DB_NAMESPACE;
+import static org.openecomp.config.Constants.DEFAULT_NAMESPACE;
+import static org.openecomp.config.Constants.DEFAULT_TENANT;
+import static org.openecomp.config.Constants.KEY_ELEMENTS_DELEMETER;
+import static org.openecomp.config.Constants.LOAD_ORDER_KEY;
+import static org.openecomp.config.Constants.MBEAN_NAME;
+import static org.openecomp.config.Constants.MODE_KEY;
+import static org.openecomp.config.Constants.NAMESPACE_KEY;
+
+import org.apache.commons.configuration2.CombinedConfiguration;
+import org.apache.commons.configuration2.CompositeConfiguration;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.FileBasedConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.api.Hint;
+import org.openecomp.config.type.ConfigurationQuery;
+import org.openecomp.config.type.ConfigurationUpdate;
+
+import java.io.File;
+import java.io.PrintWriter;
+import java.lang.management.ManagementFactory;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerDelegate;
+import javax.management.MBeanServerNotification;
+import javax.management.Notification;
+import javax.management.ObjectName;
+import javax.management.StandardMBean;
+
+/**
+ * The type Cli configuration.
+ */
+public final class CliConfigurationImpl extends ConfigurationImpl implements ConfigurationManager {
+
+ /**
+ * Instantiates a new Cli configuration.
+ *
+ * @throws Exception the exception
+ */
+ public CliConfigurationImpl() throws Exception {
+ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+ ObjectName name = new ObjectName(MBEAN_NAME);
+ if (mbs.isRegistered(name)) {
+ mbs.unregisterMBean(name);
+ }
+ mbs.registerMBean(new StandardMBean(this, ConfigurationManager.class), name);
+ //mbs.registerMBean(getMBean(), name);
+ mbs.addNotificationListener(MBeanServerDelegate.DELEGATE_NAME, this::handleNotification, null,
+ null);
+ //mbs.addNotificationListener(name, this::handleNotification, null, null);
+ }
+
+
+ /**
+ * Handle notification.
+ *
+ * @param notification the notification
+ * @param handback the handback
+ */
+ public void handleNotification(Notification notification, Object handback) {
+ if (notification instanceof MBeanServerNotification) {
+ MBeanServerNotification mbs = (MBeanServerNotification) notification;
+ if (MBeanServerNotification.UNREGISTRATION_NOTIFICATION.equals(mbs.getType())) {
+ try {
+ String mbean =
+ ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE)
+ .getString("shutdown.mbean");
+ if (mbs.getMBeanName()
+ .equals(mbean == null ? new ObjectName(MBEAN_NAME) : new ObjectName(mbean))) {
+ changeNotifier.shutdown();
+ ConfigurationDataSource.lookup().close();
+ }
+ } catch (Exception exception) {
+ //do nothing.
+ }
+ } else if (MBeanServerNotification.REGISTRATION_NOTIFICATION.equals(mbs.getType())) {
+ mbs.getMBeanName();
+ }
+ }
+ }
+
+ public String getConfigurationValue(Map<String, Object> input) {
+ return getConfigurationValue((ConfigurationQuery) getInput(input));
+ }
+
+ private String getConfigurationValue(ConfigurationQuery queryData) {
+ try {
+ if (queryData.isFallback()) {
+ return ConfigurationUtils.getCommaSaperatedList(
+ get(queryData.getTenant(), queryData.getNamespace(), queryData.getKey(), String[].class,
+ queryData.isLatest() ? Hint.LATEST_LOOKUP : Hint.DEFAULT,
+ queryData.isExternalLookup() ? Hint.EXTERNAL_LOOKUP : Hint.DEFAULT,
+ queryData.isNodeSpecific() ? Hint.NODE_SPECIFIC : Hint.DEFAULT));
+ } else {
+ String[] list =
+ getInternal(queryData.getTenant(), queryData.getNamespace(), queryData.getKey(),
+ String[].class, queryData.isLatest() ? Hint.LATEST_LOOKUP : Hint.DEFAULT,
+ queryData.isExternalLookup() ? Hint.EXTERNAL_LOOKUP : Hint.DEFAULT,
+ queryData.isNodeSpecific() ? Hint.NODE_SPECIFIC : Hint.DEFAULT);
+ return ConfigurationUtils
+ .getCommaSaperatedList(list == null ? Arrays.asList() : Arrays.asList(list));
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ return null;
+ }
+
+ public void updateConfigurationValue(Map<String, Object> input) {
+ updateConfigurationValue((ConfigurationUpdate) getInput(input));
+ }
+
+ private void updateConfigurationValue(ConfigurationUpdate updateData) {
+
+ try {
+ if (!ConfigurationRepository.lookup().isValidTenant(updateData.getTenant())) {
+ throw new RuntimeException("Invalid tenantId.");
+ }
+ if (!ConfigurationRepository.lookup().isValidNamespace(updateData.getNamespace())) {
+ throw new RuntimeException("Invalid Namespace.");
+ }
+ } catch (NullPointerException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ try {
+ boolean keyPresent =
+ isKeyExists(updateData.getTenant(), updateData.getNamespace(), updateData.getKey());
+ if (keyPresent) {
+ boolean isUpdated = false;
+ Object[] paramArray = new Object[]{
+ updateData.getTenant() + KEY_ELEMENTS_DELEMETER + updateData.getNamespace(),
+ new Long(System.currentTimeMillis()), updateData.getKey(),
+ getConfigurationValue(updateData), updateData.getValue()};
+ Configuration config = ConfigurationRepository.lookup()
+ .getConfigurationFor(updateData.getTenant(), updateData.getNamespace());
+ if (config instanceof AgglomerateConfiguration || config instanceof CombinedConfiguration) {
+ CompositeConfiguration cc = new CompositeConfiguration();
+ cc.addConfiguration(config);
+ config = cc;
+ }
+ CompositeConfiguration configuration = (CompositeConfiguration) config;
+ int overrideIndex = -1;
+ for (int i = 0; i < configuration.getNumberOfConfigurations(); i++) {
+ if (!updateData.isNodeOverride()
+ && (configuration.getConfiguration(i) instanceof AgglomerateConfiguration
+ || configuration.getConfiguration(i) instanceof CombinedConfiguration)) {
+ configuration.getConfiguration(i)
+ .setProperty(updateData.getKey(), updateData.getValue());
+ isUpdated = true;
+ break;
+ } else if (updateData.isNodeOverride()
+ && configuration.getConfiguration(i) instanceof FileBasedConfiguration) {
+ configuration.getConfiguration(i)
+ .setProperty(updateData.getKey(), updateData.getValue());
+ isUpdated = true;
+ overrideIndex = i;
+ break;
+ }
+ }
+ if (!isUpdated) {
+ if (updateData.isNodeOverride()) {
+ PropertiesConfiguration pc = new PropertiesConfiguration();
+ pc.setProperty(NAMESPACE_KEY,
+ updateData.getTenant() + Constants.TENANT_NAMESPACE_SAPERATOR
+ + updateData.getNamespace());
+ pc.setProperty(MODE_KEY, "OVERRIDE");
+ pc.setProperty(updateData.getKey(), updateData.getValue());
+ if (System.getProperty("node.config.location") != null
+ && System.getProperty("node.config.location").trim().length() > 0) {
+ File file = new File(System.getProperty("node.config.location"),
+ updateData.getTenant() + File.separator + updateData.getNamespace()
+ + File.separator + "config.properties");
+ file.getParentFile().mkdirs();
+ PrintWriter out = new PrintWriter(file);
+ pc.write(out);
+ out.close();
+ ConfigurationRepository.lookup().populateOverrideConfigurtaion(
+ updateData.getTenant() + KEY_ELEMENTS_DELEMETER + updateData.getNamespace(),
+ file);
+ }
+ } else {
+ configuration.getConfiguration(0)
+ .setProperty(updateData.getKey(), updateData.getValue());
+ }
+ }
+ if (!updateData.isNodeOverride()) {
+ ConfigurationUtils.executeInsertSql(
+ ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE)
+ .getString("insertconfigurationchangecql"), paramArray);
+ } else {
+ ConfigurationRepository.lookup().refreshOverrideConfigurtaionFor(
+ updateData.getTenant() + KEY_ELEMENTS_DELEMETER + updateData.getNamespace(),
+ overrideIndex);
+ }
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ private boolean isKeyExists(String tenant, String namespace, String key) {
+ boolean keyExist = false;
+ try {
+ keyExist =
+ ConfigurationRepository.lookup().getConfigurationFor(tenant, namespace).containsKey(key);
+ if (!keyExist && !DEFAULT_TENANT.equals(tenant)) {
+ keyExist = ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, namespace)
+ .containsKey(key);
+ }
+ if (!keyExist && !DEFAULT_NAMESPACE.equals(namespace)) {
+ keyExist = ConfigurationRepository.lookup().getConfigurationFor(tenant, DEFAULT_NAMESPACE)
+ .containsKey(key);
+ }
+ if (!keyExist && !DEFAULT_TENANT.equals(tenant) && !DEFAULT_NAMESPACE.equals(namespace)) {
+ keyExist =
+ ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DEFAULT_NAMESPACE)
+ .containsKey(key);
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ return keyExist;
+ }
+
+ public Map<String, String> listConfiguration(Map<String, Object> input) {
+ return listConfiguration((ConfigurationQuery) getInput(input));
+ }
+
+ private Map<String, String> listConfiguration(ConfigurationQuery query) {
+ Map<String, String> map = new HashMap<>();
+ try {
+ Collection<String> keys = getKeys(query.getTenant(), query.getNamespace());
+ for (String key : keys) {
+ map.put(key, getConfigurationValue(query.key(key)));
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ return null;
+ }
+ return map;
+ }
+
+ @Override
+ public boolean updateConfigurationValues(String tenant, String namespace,
+ Map configKeyValueStore) {
+ boolean valueToReturn = true;
+ Iterator<String> keys = configKeyValueStore.keySet().iterator();
+ while (keys.hasNext()) {
+ try {
+ String key = keys.next();
+ ConfigurationUpdate updateData = new ConfigurationUpdate();
+ updateData.tenant(tenant).namespace(namespace).key(key);
+ updateData.value(configKeyValueStore.get(key).toString());
+ updateConfigurationValue(updateData);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ valueToReturn = false;
+ }
+ }
+ return valueToReturn;
+ }
+
+ private Object getInput(Map<String, Object> input) {
+ Object toReturn = null;
+ try {
+ toReturn = Class.forName(input.get("ImplClass").toString()).newInstance();
+ Method[] methods = toReturn.getClass().getMethods();
+ for (Method method : methods) {
+ if (input.containsKey(method.getName())) {
+ method.invoke(toReturn, input.get(method.getName()));
+ }
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+
+ return toReturn;
+ }
+
+ @Override
+ public Collection<String> getTenants() {
+ return ConfigurationRepository.lookup().getTenants();
+ }
+
+ @Override
+ public Collection<String> getNamespaces() {
+ return ConfigurationRepository.lookup().getNamespaces();
+ }
+
+ private ArrayList<String> getInMemoryKeys(String tenant, String namespace) {
+ ArrayList<String> keys = new ArrayList<>();
+
+ try {
+ Iterator<String> iter =
+ ConfigurationRepository.lookup().getConfigurationFor(tenant, namespace).getKeys();
+ while (iter.hasNext()) {
+ String key = iter.next();
+ if (!(key.equals(NAMESPACE_KEY) || key.equals(MODE_KEY)
+ || key.equals(LOAD_ORDER_KEY))) {
+ keys.add(key);
+ }
+ }
+ } catch (Exception exception) {
+ //do nothing
+ }
+
+ return keys;
+ }
+
+ @Override
+ public Collection<String> getKeys(String tenant, String namespace) {
+ Set<String> keyCollection = new HashSet<>();
+ try {
+ keyCollection.addAll(ConfigurationUtils.executeSelectSql(
+ ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE)
+ .getString("fetchkeysql"),
+ new String[]{tenant + KEY_ELEMENTS_DELEMETER + DEFAULT_NAMESPACE}));
+ keyCollection.addAll(ConfigurationUtils.executeSelectSql(
+ ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE)
+ .getString("fetchkeysql"),
+ new String[]{tenant + KEY_ELEMENTS_DELEMETER + namespace}));
+ keyCollection.addAll(ConfigurationUtils.executeSelectSql(
+ ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE)
+ .getString("fetchkeysql"),
+ new String[]{DEFAULT_TENANT + KEY_ELEMENTS_DELEMETER + namespace}));
+ keyCollection.addAll(ConfigurationUtils.executeSelectSql(
+ ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE)
+ .getString("fetchkeysql"),
+ new String[]{DEFAULT_TENANT + KEY_ELEMENTS_DELEMETER + DEFAULT_NAMESPACE}));
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ keyCollection.addAll(getInMemoryKeys(tenant, DEFAULT_NAMESPACE));
+ keyCollection.addAll(getInMemoryKeys(tenant, namespace));
+ keyCollection.addAll(getInMemoryKeys(DEFAULT_TENANT, namespace));
+ keyCollection.addAll(getInMemoryKeys(DEFAULT_TENANT, DEFAULT_NAMESPACE));
+ }
+ return keyCollection;
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationChangeNotifier.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationChangeNotifier.java
new file mode 100644
index 0000000000..5c3df4a56d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationChangeNotifier.java
@@ -0,0 +1,472 @@
+package org.openecomp.config.impl;
+
+import static org.openecomp.config.ConfigurationUtils.isArray;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.api.Hint;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.lang.reflect.Method;
+import java.nio.file.ClosedWatchServiceException;
+import java.nio.file.FileSystems;
+import java.nio.file.Path;
+import java.nio.file.StandardWatchEventKinds;
+import java.nio.file.WatchEvent;
+import java.nio.file.WatchKey;
+import java.nio.file.WatchService;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+
+
+/**
+ * The type Configuration change notifier.
+ */
+public final class ConfigurationChangeNotifier {
+
+ private HashMap<String, List<NotificationData>> store = new HashMap<>();
+ private ScheduledExecutorService executor =
+ Executors.newScheduledThreadPool(5, ConfigurationUtils.getThreadFactory());
+ private ExecutorService notificationExcecutor =
+ Executors.newCachedThreadPool(ConfigurationUtils.getThreadFactory());
+ private Map<String, WatchService> watchServiceCollection =
+ Collections.synchronizedMap(new HashMap<>());
+
+ {
+ if (!Thread.currentThread().getStackTrace()[2].getClassName()
+ .equals(ConfigurationImpl.class.getName())) {
+ throw new RuntimeException("Illegal access.");
+ }
+ }
+
+ /**
+ * Instantiates a new Configuration change notifier.
+ *
+ * @param inMemoryConfig the in memory config
+ */
+ public ConfigurationChangeNotifier(Map<String, AggregateConfiguration> inMemoryConfig) {
+ executor.scheduleWithFixedDelay(() -> this
+ .pollFilesystemAndUpdateConfigurationIfREquired(inMemoryConfig,
+ System.getProperty("config.location"), false), 1, 1, TimeUnit.MILLISECONDS);
+ executor.scheduleWithFixedDelay(() -> this
+ .pollFilesystemAndUpdateConfigurationIfREquired(inMemoryConfig,
+ System.getProperty("tenant.config.location"), true), 1, 1, TimeUnit.MILLISECONDS);
+ executor.scheduleWithFixedDelay(() -> this
+ .pollFilesystemAndUpdateNodeSpecificConfigurationIfREquired(
+ System.getProperty("node.config.location")), 1, 1, TimeUnit.MILLISECONDS);
+ }
+
+ /**
+ * Shutdown.
+ */
+ public void shutdown() {
+ for (WatchService watch : watchServiceCollection.values()) {
+ try {
+ watch.close();
+ } catch (IOException exception) {
+ //do nothing
+ }
+ }
+ executor.shutdownNow();
+ }
+
+ /**
+ * Poll filesystem and update configuration if r equired.
+ *
+ * @param inMemoryConfig the in memory config
+ * @param location the location
+ * @param isTenantLocation the is tenant location
+ */
+ public void pollFilesystemAndUpdateConfigurationIfREquired(
+ Map<String, AggregateConfiguration> inMemoryConfig, String location,
+ boolean isTenantLocation) {
+ try {
+ Set<Path> paths = watchForChange(location);
+ if (paths != null) {
+ for (Path path : paths) {
+ File file = path.toAbsolutePath().toFile();
+ String repositoryKey = null;
+ if (ConfigurationUtils.isConfig(file) && file.isFile()) {
+ if (isTenantLocation) {
+ Collection<File> tenantsRoot =
+ ConfigurationUtils.getAllFiles(new File(location), false, true);
+ for (File tenantRoot : tenantsRoot) {
+ if (file.getAbsolutePath().startsWith(tenantRoot.getAbsolutePath())) {
+ repositoryKey = ConfigurationUtils.getConfigurationRepositoryKey(
+ (tenantRoot.getName() + Constants.TENANT_NAMESPACE_SAPERATOR
+ + ConfigurationUtils.getNamespace(file))
+ .split(Constants.TENANT_NAMESPACE_SAPERATOR));
+ }
+ }
+ } else {
+ repositoryKey = ConfigurationUtils.getConfigurationRepositoryKey(file);
+ }
+ AggregateConfiguration config = inMemoryConfig.get(repositoryKey);
+ if (config != null) {
+ LinkedHashMap origConfig = ConfigurationUtils.toMap(config.getFinalConfiguration());
+ config.addConfig(file);
+ LinkedHashMap latestConfig = ConfigurationUtils.toMap(config.getFinalConfiguration());
+ Map map = ConfigurationUtils.diff(origConfig, latestConfig);
+ String[] tenantNamespaceArray =
+ repositoryKey.split(Constants.KEY_ELEMENTS_DELEMETER);
+ updateConfigurationValues(tenantNamespaceArray[0], tenantNamespaceArray[1], map);
+ }
+ } else {
+ Iterator<String> repoKeys = inMemoryConfig.keySet().iterator();
+ while (repoKeys.hasNext()) {
+ repositoryKey = repoKeys.next();
+ AggregateConfiguration config = inMemoryConfig.get(repositoryKey);
+ if (config.containsConfig(file)) {
+ LinkedHashMap origConfig = ConfigurationUtils.toMap(config.getFinalConfiguration());
+ config.removeConfig(file);
+ LinkedHashMap latestConfig =
+ ConfigurationUtils.toMap(config.getFinalConfiguration());
+ Map map = ConfigurationUtils.diff(origConfig, latestConfig);
+ String[] tenantNamespaceArray =
+ repositoryKey.split(Constants.KEY_ELEMENTS_DELEMETER);
+ updateConfigurationValues(tenantNamespaceArray[0], tenantNamespaceArray[1],
+ map);
+ }
+ }
+ }
+ }
+ }
+ } catch (ClosedWatchServiceException exception) {
+ // do nothing.
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ private void updateConfigurationValues(String tenant, String namespace, Map map)
+ throws Exception {
+ MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+ ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
+ ConfigurationManager conf =
+ JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class,
+ true);
+ conf.updateConfigurationValues(tenant, namespace, map);
+ }
+
+ /**
+ * Poll filesystem and update node specific configuration if r equired.
+ *
+ * @param location the location
+ */
+ public void pollFilesystemAndUpdateNodeSpecificConfigurationIfREquired(String location) {
+ try {
+ Set<Path> paths = watchForChange(location);
+ if (paths != null) {
+ for (Path path : paths) {
+ File file = path.toAbsolutePath().toFile();
+ String repositoryKey = null;
+ if (ConfigurationUtils.isConfig(file)) {
+ repositoryKey = ConfigurationUtils.getConfigurationRepositoryKey(file);
+ ConfigurationRepository.lookup().populateOverrideConfigurtaion(repositoryKey, file);
+ } else {
+ ConfigurationRepository.lookup().removeOverrideConfigurtaion(file);
+ }
+ }
+ }
+ } catch (Throwable exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ /**
+ * Notify changes towards.
+ *
+ * @param tenant the tenant
+ * @param component the component
+ * @param key the key
+ * @param myself the myself
+ * @throws Exception the exception
+ */
+ public void notifyChangesTowards(String tenant, String component, String key,
+ ConfigurationChangeListener myself) throws Exception {
+ List<NotificationData> notificationList =
+ store.get(tenant + Constants.KEY_ELEMENTS_DELEMETER + component);
+ if (notificationList == null) {
+ notificationList = Collections.synchronizedList(new ArrayList<NotificationData>());
+ store.put(tenant + Constants.KEY_ELEMENTS_DELEMETER + component, notificationList);
+ executor.scheduleWithFixedDelay(
+ () -> triggerScanning(tenant + Constants.KEY_ELEMENTS_DELEMETER + component), 1, 30000,
+ TimeUnit.MILLISECONDS);
+ }
+ notificationList.add(new NotificationData(tenant, component, key, myself));
+ }
+
+ /**
+ * Stop notification towards.
+ *
+ * @param tenant the tenant
+ * @param component the component
+ * @param key the key
+ * @param myself the myself
+ * @throws Exception the exception
+ */
+ public void stopNotificationTowards(String tenant, String component, String key,
+ ConfigurationChangeListener myself) throws Exception {
+ List<NotificationData> notificationList =
+ store.get(tenant + Constants.KEY_ELEMENTS_DELEMETER + component);
+ if (notificationList != null) {
+ boolean removed =
+ notificationList.remove(new NotificationData(tenant, component, key, myself));
+ if (removed && notificationList.isEmpty()) {
+ store.remove(tenant + Constants.KEY_ELEMENTS_DELEMETER + component);
+ }
+ }
+
+ }
+
+ private void triggerScanning(String key) {
+ if (store.get(key) != null) {
+ notificationExcecutor.submit(() -> scanForChanges(key));
+ } else {
+ throw new IllegalArgumentException("Notification service for " + key + " is suspended.");
+ }
+ }
+
+ private void scanForChanges(String key) {
+ List<NotificationData> list = store.get(key);
+ if (list != null) {
+ int size = list.size();
+ for (int i = 0; i < size; i++) {
+ NotificationData notificationData = list.get(i);
+ if (notificationData.isChanged()) {
+ notificationExcecutor.submit(() -> sendNotification(notificationData));
+ }
+ }
+ }
+ }
+
+ private void sendNotification(NotificationData notificationData) {
+ try {
+ notificationData.dispatchNotification();
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ private Set<Path> watchForChange(String location) throws Exception {
+ if (location == null || location.trim().length() == 0) {
+ return null;
+ }
+ File file = new File(location);
+ if (!file.exists()) {
+ return null;
+ }
+ Path path = file.toPath();
+ Set<Path> toReturn = new HashSet<>();
+ try (final WatchService watchService = FileSystems.getDefault().newWatchService()) {
+ watchServiceCollection.put(location, watchService);
+ path.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY,
+ StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE);
+ for (File dir : ConfigurationUtils.getAllFiles(file, true, true)) {
+ dir.toPath().register(watchService, StandardWatchEventKinds.ENTRY_MODIFY,
+ StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE);
+ }
+ while (true) {
+ final WatchKey wk = watchService.take();
+ Thread.sleep(ConfigurationRepository.lookup()
+ .getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE)
+ .getLong("event.fetch.delay"));
+ for (WatchEvent<?> event : wk.pollEvents()) {
+ Object context = event.context();
+ if (context instanceof Path) {
+ File newFile = new File(((Path) wk.watchable()).toFile(), context.toString());
+ if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
+ if (newFile.isDirectory()) {
+ newFile.toPath().register(watchService, StandardWatchEventKinds.ENTRY_MODIFY,
+ StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE);
+ continue;
+ }
+ } else if (event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) {
+ if (newFile.isDirectory()) {
+ continue;
+ }
+ }
+ toReturn.add(newFile.toPath());
+ }
+ }
+ if (toReturn.isEmpty()) {
+ continue;
+ }
+ break;
+ }
+ }
+ return toReturn;
+ }
+
+ /**
+ * The type Notification data.
+ */
+ class NotificationData {
+
+ /**
+ * The Tenant.
+ */
+ String tenant;
+ /**
+ * The Namespace.
+ */
+ String namespace;
+ /**
+ * The Key.
+ */
+ String key;
+ /**
+ * The Myself.
+ */
+ ConfigurationChangeListener myself;
+ /**
+ * The Current value.
+ */
+ Object currentValue;
+ /**
+ * The Is array.
+ */
+ boolean isArray;
+
+ /**
+ * Instantiates a new Notification data.
+ *
+ * @param tenant the tenant
+ * @param component the component
+ * @param key the key
+ * @param myself the myself
+ * @throws Exception the exception
+ */
+ public NotificationData(String tenant, String component, String key,
+ ConfigurationChangeListener myself) throws Exception {
+ this.tenant = tenant;
+ this.namespace = component;
+ this.key = key;
+ this.myself = myself;
+ if (!ConfigurationRepository.lookup().getConfigurationFor(tenant, component)
+ .containsKey(key)) {
+ throw new RuntimeException("Key[" + key + "] not found.");
+ }
+ isArray = isArray(tenant, component, key, Hint.DEFAULT.value());
+ if (isArray) {
+ currentValue = ConfigurationManager.lookup().getAsStringValues(tenant, component, key);
+ } else {
+ currentValue = ConfigurationManager.lookup().getAsString(tenant, component, key);
+ }
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof NotificationData)) {
+ return false;
+ }
+ NotificationData nd = (NotificationData) obj;
+ return tenant.equals(nd.tenant) && namespace.equals(nd.namespace) && key.equals(nd.key)
+ && myself.equals(nd.myself);
+ }
+
+ /**
+ * Is changed boolean.
+ *
+ * @return the boolean
+ */
+ public boolean isChanged() {
+ Object latestValue;
+ try {
+ if (isArray) {
+ latestValue = ConfigurationManager.lookup().getAsStringValues(tenant, namespace, key);
+ } else {
+ latestValue = ConfigurationManager.lookup().getAsString(tenant, namespace, key);
+ }
+ if (!isArray) {
+ return !currentValue.equals(latestValue);
+ } else {
+ Collection<String> oldCollection = (Collection<String>) currentValue;
+ Collection<String> newCollection = (Collection<String>) latestValue;
+ for (String val : oldCollection) {
+ if (!newCollection.remove(val)) {
+ return true;
+ }
+ }
+ return !newCollection.isEmpty();
+ }
+ } catch (Exception exception) {
+ return false;
+ }
+ }
+
+ /**
+ * Dispatch notification.
+ *
+ * @throws Exception the exception
+ */
+ public void dispatchNotification() throws Exception {
+ Method method = null;
+ Vector<Object> parameters = null;
+ try {
+ Object latestValue = null;
+ if (isArray) {
+ latestValue = ConfigurationManager.lookup().getAsStringValues(tenant, namespace, key);
+ } else {
+ latestValue = ConfigurationManager.lookup().getAsString(tenant, namespace, key);
+ }
+ Method[] methods = myself.getClass().getDeclaredMethods();
+ if (methods != null && methods.length > 0) {
+ method = methods[0];
+ int paramCount = method.getParameterCount();
+ parameters = new Vector<>();
+ if (paramCount > 4) {
+ if (tenant.equals(Constants.DEFAULT_TENANT)) {
+ parameters.add(null);
+ } else {
+ parameters.add(tenant);
+ }
+ }
+ if (paramCount > 3) {
+ if (namespace.equals(Constants.DEFAULT_NAMESPACE)) {
+ parameters.add(null);
+ } else {
+ parameters.add(namespace);
+ }
+ }
+ parameters.add(key);
+ parameters.add(currentValue);
+ parameters.add(latestValue);
+ method.setAccessible(true);
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ } finally {
+ isArray = isArray(tenant, namespace, key, Hint.DEFAULT.value());
+ if (isArray) {
+ currentValue = ConfigurationManager.lookup().getAsStringValues(tenant, namespace, key);
+ } else {
+ currentValue = ConfigurationManager.lookup().getAsString(tenant, namespace, key);
+ }
+ if (method != null && parameters != null) {
+ method.invoke(myself, parameters.toArray());
+ }
+ }
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationDataSource.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationDataSource.java
new file mode 100644
index 0000000000..edbae2fa9c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationDataSource.java
@@ -0,0 +1,97 @@
+package org.openecomp.config.impl;
+
+import org.apache.commons.configuration2.ImmutableConfiguration;
+import org.apache.commons.dbcp2.BasicDataSource;
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.Constants;
+
+import java.sql.Driver;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.ServiceLoader;
+import java.util.Set;
+
+/**
+ * The type Configuration data source.
+ */
+public final class ConfigurationDataSource {
+
+ private static BasicDataSource configDBDatasource = null;
+ private static Set<String> validCallers = Collections.unmodifiableSet(new HashSet<>(
+ Arrays.asList(ConfigurationUtils.class.getName(), CliConfigurationImpl.class.getName())));
+
+ static {
+ try {
+ configDBDatasource = initDataSource();
+ } catch (Exception exception) {
+ System.err.println("Datasource initialization error. Configuration management will be using in-memory persistence.");
+ }
+ }
+
+ /**
+ * Lookup basic data source.
+ *
+ * @return the basic data source
+ * @throws Exception the exception
+ */
+ public static BasicDataSource lookup() throws Exception {
+ if (validCallers.contains(Thread.currentThread().getStackTrace()[2].getClassName())) {
+ return configDBDatasource;
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Init data source basic data source.
+ *
+ * @return the basic data source
+ * @throws Exception the exception
+ */
+ public static BasicDataSource initDataSource() throws Exception {
+ ImmutableConfiguration dbConfig = ConfigurationRepository.lookup()
+ .getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE);
+ BasicDataSource datasource = new BasicDataSource();
+ String driverClassName = dbConfig.getString("driverClassName");
+ String jdbcUrl = dbConfig.getString("jdbcURL");
+ if (!isDriverSuitable(driverClassName, jdbcUrl)) {
+ driverClassName = getDriverFor(jdbcUrl);
+ }
+ datasource.setDriverClassName(driverClassName);
+ datasource.setUrl(jdbcUrl);
+ String dbuser = dbConfig.getString("dbuser");
+ String dbpassword = dbConfig.getString("dbpassword");
+ if (dbuser != null && dbuser.trim().length() > 0) {
+ datasource.setUsername(dbuser);
+ }
+ if (dbpassword != null && dbpassword.trim().length() > 0) {
+ datasource.setPassword(dbpassword);
+ }
+ return datasource;
+ }
+
+ private static boolean isDriverSuitable(String driverClassName, String url) {
+ if (driverClassName == null || driverClassName.trim().length() == 0) {
+ return false;
+ }
+ try {
+ Driver driver = Driver.class.cast(Class.forName(driverClassName).newInstance());
+ return driver.acceptsURL(url);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ return false;
+ }
+ }
+
+ private static String getDriverFor(String url) throws Exception {
+ ServiceLoader<Driver> loader = ServiceLoader.load(Driver.class);
+ for (Driver driver : loader) {
+ if (driver.acceptsURL(url)) {
+ return driver.getClass().getName();
+ }
+ }
+ throw new RuntimeException("No Suitable driver found for " + url);
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationFilter.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationFilter.java
new file mode 100644
index 0000000000..14a827df78
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationFilter.java
@@ -0,0 +1,37 @@
+package org.openecomp.config.impl;
+
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.Configuration;
+
+import java.io.IOException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.annotation.WebFilter;
+
+@WebFilter("/")
+public class ConfigurationFilter implements Filter {
+
+ @Override
+ public void init(FilterConfig paramFilterConfig) throws ServletException {
+ }
+
+ @Override
+ public void doFilter(ServletRequest paramServletRequest, ServletResponse paramServletResponse,
+ FilterChain paramFilterChain) throws IOException, ServletException {
+ Configuration.tenant.set(Constants.DEFAULT_TENANT);
+ try {
+ paramFilterChain.doFilter(paramServletRequest, paramServletResponse);
+ } finally {
+ Configuration.tenant.remove();
+ }
+ }
+
+ @Override
+ public void destroy() {
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationImpl.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationImpl.java
new file mode 100644
index 0000000000..26e8f8e7bb
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationImpl.java
@@ -0,0 +1,684 @@
+package org.openecomp.config.impl;
+
+import static org.openecomp.config.ConfigurationUtils.getConfigurationRepositoryKey;
+import static org.openecomp.config.ConfigurationUtils.getProperty;
+import static org.openecomp.config.ConfigurationUtils.isExternalLookup;
+import static org.openecomp.config.ConfigurationUtils.isWrapperClass;
+import static org.openecomp.config.ConfigurationUtils.isZeroLengthArray;
+
+import static org.openecomp.config.Constants.DB_NAMESPACE;
+import static org.openecomp.config.Constants.DEFAULT_NAMESPACE;
+import static org.openecomp.config.Constants.DEFAULT_TENANT;
+import static org.openecomp.config.Constants.KEY_ELEMENTS_DELEMETER;
+
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.DatabaseConfiguration;
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.Constants;
+import org.openecomp.config.NonConfigResource;
+import org.openecomp.config.api.Config;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.Hint;
+
+import java.io.File;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.Predicate;
+
+/**
+ * The type Configuration.
+ */
+public class ConfigurationImpl implements org.openecomp.config.api.Configuration {
+
+ private static ThreadLocal<String> tenant = new ThreadLocal<String>() {
+ protected String initialValue() {
+ return Constants.DEFAULT_TENANT;
+ }
+
+ ;
+ };
+ private static boolean instantiated = false;
+ /**
+ * The Change notifier.
+ */
+ ConfigurationChangeNotifier changeNotifier;
+
+ /**
+ * Instantiates a new Configuration.
+ *
+ * @throws Exception the exception
+ */
+ public ConfigurationImpl() throws Exception {
+ if (instantiated || !CliConfigurationImpl.class.isAssignableFrom(this.getClass())) {
+ throw new RuntimeException("Illegal access to configuration.");
+ }
+ Map<String, AggregateConfiguration> moduleConfigStore = new HashMap<>();
+ List<URL> classpathResources = ConfigurationUtils.getAllClassPathResources();
+ Predicate<URL> predicate = ConfigurationUtils::isConfig;
+ for (URL url : classpathResources) {
+ if (predicate.test(url)) {
+ String moduleName = getConfigurationRepositoryKey(url);
+ AggregateConfiguration moduleConfig = moduleConfigStore.get(moduleName);
+ if (moduleConfig == null) {
+ moduleConfig = new AggregateConfiguration();
+ moduleConfigStore.put(moduleName, moduleConfig);
+ }
+ moduleConfig.addConfig(url);
+ } else {
+ NonConfigResource.add(url);
+ }
+ }
+ String configLocation = System.getProperty("config.location");
+ if (configLocation != null && configLocation.trim().length() > 0) {
+ File root = new File(configLocation);
+ Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false);
+ Predicate<File> filePredicate = ConfigurationUtils::isConfig;
+ for (File file : filesystemResources) {
+ if (filePredicate.test(file)) {
+ String moduleName = getConfigurationRepositoryKey(file);
+ AggregateConfiguration moduleConfig = moduleConfigStore.get(moduleName);
+ if (moduleConfig == null) {
+ moduleConfig = new AggregateConfiguration();
+ moduleConfigStore.put(moduleName, moduleConfig);
+ }
+ moduleConfig.addConfig(file);
+ } else {
+ NonConfigResource.add(file);
+ }
+ }
+ }
+ String tenantConfigLocation = System.getProperty("tenant.config.location");
+ if (tenantConfigLocation != null && tenantConfigLocation.trim().length() > 0) {
+ File root = new File(tenantConfigLocation);
+ Collection<File> tenantsRoot = ConfigurationUtils.getAllFiles(root, false, true);
+ Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false);
+ Predicate<File> filePredicate = ConfigurationUtils::isConfig;
+ for (File file : filesystemResources) {
+ if (filePredicate.test(file)) {
+ String moduleName = ConfigurationUtils.getNamespace(file);
+ for (File tenanatFileRoot : tenantsRoot) {
+ if (file.getAbsolutePath().startsWith(tenanatFileRoot.getAbsolutePath())) {
+ moduleName = getConfigurationRepositoryKey(
+ (tenanatFileRoot.getName().toUpperCase() + Constants.TENANT_NAMESPACE_SAPERATOR
+ + moduleName).split(Constants.TENANT_NAMESPACE_SAPERATOR));
+ }
+ }
+ AggregateConfiguration moduleConfig = moduleConfigStore.get(moduleName);
+ if (moduleConfig == null) {
+ moduleConfig = new AggregateConfiguration();
+ moduleConfigStore.put(moduleName, moduleConfig);
+ }
+ moduleConfig.addConfig(file);
+ }
+ }
+ }
+ populateFinalConfigurationIncrementally(moduleConfigStore);
+ ConfigurationRepository.lookup().initTenantsAndNamespaces();
+ String nodeConfigLocation = System.getProperty("node.config.location");
+ if (nodeConfigLocation != null && nodeConfigLocation.trim().length() > 0) {
+ File root = new File(nodeConfigLocation);
+ Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false);
+ Predicate<File> filePredicate = ConfigurationUtils::isConfig;
+ for (File file : filesystemResources) {
+ if (filePredicate.test(file)) {
+ ConfigurationRepository.lookup().populateOverrideConfigurtaion(
+ getConfigurationRepositoryKey(ConfigurationUtils.getNamespace(file)
+ .split(Constants.TENANT_NAMESPACE_SAPERATOR)), file);
+ }
+ }
+ }
+ instantiated = true;
+ changeNotifier = new ConfigurationChangeNotifier(moduleConfigStore);
+ }
+
+ @Override
+ public void addConfigurationChangeListener(String tenant, String namespace, String key,
+ ConfigurationChangeListener myself) {
+ tenant = ConfigurationRepository.lookup().isValidTenant(tenant) ? tenant.toUpperCase()
+ : Constants.DEFAULT_TENANT;
+ namespace =
+ ConfigurationRepository.lookup().isValidNamespace(namespace) ? namespace.toUpperCase()
+ : Constants.DEFAULT_NAMESPACE;
+ if (key == null || key.trim().length() == 0) {
+ throw new IllegalArgumentException("Key can't be null.");
+ }
+ if (myself == null) {
+ throw new IllegalArgumentException("ConfigurationChangeListener instance is null.");
+ }
+ try {
+ changeNotifier.notifyChangesTowards(tenant, namespace, key, myself);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ private void populateFinalConfigurationIncrementally(Map<String, AggregateConfiguration> configs)
+ throws Exception {
+ boolean isDbAccessible = false;
+ if (configs.get(
+ Constants.DEFAULT_TENANT + Constants.KEY_ELEMENTS_DELEMETER + Constants.DB_NAMESPACE)
+ != null) {
+ ConfigurationRepository.lookup().populateConfigurtaion(
+ Constants.DEFAULT_TENANT + Constants.KEY_ELEMENTS_DELEMETER + Constants.DB_NAMESPACE,
+ configs.remove(
+ Constants.DEFAULT_TENANT + Constants.KEY_ELEMENTS_DELEMETER + Constants.DB_NAMESPACE)
+ .getFinalConfiguration());
+ isDbAccessible = ConfigurationUtils.executeDdlSql(ConfigurationRepository.lookup()
+ .getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE)
+ .getString("createtablecql"));
+ if (isDbAccessible) {
+ ConfigurationUtils.executeDdlSql(ConfigurationRepository.lookup()
+ .getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE)
+ .getString("createmonitoringtablecql"));
+ }
+ }
+
+ Set<String> modules = configs.keySet();
+ for (String module : modules) {
+ if (isDbAccessible) {
+ DatabaseConfiguration config =
+ ConfigurationUtils.getDbConfigurationBuilder(module).getConfiguration();
+ Configuration currentConfig = configs.get(module).getFinalConfiguration();
+ Iterator<String> keys = currentConfig.getKeys();
+ while (keys.hasNext()) {
+ String currentKey = keys.next();
+ if (!(Constants.MODE_KEY.equals(currentKey)
+ || Constants.NAMESPACE_KEY.equals(currentKey)
+ || Constants.LOAD_ORDER_KEY.equals(currentKey))) {
+ if (!config.containsKey(currentKey)) {
+ Object propValue = currentConfig.getProperty(currentKey);
+ if (propValue instanceof Collection) {
+ config.addProperty(currentKey, propValue.toString());
+ } else {
+ config.addProperty(currentKey, propValue);
+ }
+ }
+ }
+ }
+ } else {
+ ConfigurationRepository.lookup()
+ .populateConfigurtaion(module, configs.get(module).getFinalConfiguration());
+ }
+ }
+ }
+
+ @Override
+ public <T> T get(String tenant, String namespace, String key, Class<T> clazz, Hint... hints) {
+
+ String[] tenantNamespaceArrayy = null;
+ if (tenant == null && namespace != null
+ && (tenantNamespaceArrayy = namespace.split(Constants.TENANT_NAMESPACE_SAPERATOR)).length
+ > 1) {
+ tenant = tenantNamespaceArrayy[0];
+ namespace = tenantNamespaceArrayy[1];
+ }
+
+ tenant = ConfigurationRepository.lookup().isValidTenant(tenant) ? tenant.toUpperCase()
+ : Constants.DEFAULT_TENANT;
+ namespace =
+ ConfigurationRepository.lookup().isValidNamespace(namespace) ? namespace.toUpperCase()
+ : Constants.DEFAULT_NAMESPACE;
+ T returnValue = null;
+ returnValue = (T) getInternal(tenant, namespace, key,
+ clazz.isPrimitive() ? getWrapperClass(clazz) : clazz,
+ hints == null || hints.length == 0 ? new Hint[]{Hint.EXTERNAL_LOOKUP, Hint.NODE_SPECIFIC}
+ : hints);
+ if ((returnValue == null || isZeroLengthArray(clazz, returnValue))
+ && !Constants.DEFAULT_TENANT.equals(tenant)) {
+ returnValue = (T) getInternal(Constants.DEFAULT_TENANT, namespace, key,
+ clazz.isPrimitive() ? getWrapperClass(clazz) : clazz,
+ hints == null || hints.length == 0 ? new Hint[]{Hint.EXTERNAL_LOOKUP, Hint.NODE_SPECIFIC}
+ : hints);
+ }
+ if ((returnValue == null || isZeroLengthArray(clazz, returnValue))
+ && !Constants.DEFAULT_NAMESPACE.equals(namespace)) {
+ returnValue = (T) getInternal(tenant, Constants.DEFAULT_NAMESPACE, key,
+ clazz.isPrimitive() ? getWrapperClass(clazz) : clazz,
+ hints == null || hints.length == 0 ? new Hint[]{Hint.EXTERNAL_LOOKUP, Hint.NODE_SPECIFIC}
+ : hints);
+ }
+ if ((returnValue == null ||isZeroLengthArray(clazz, returnValue))
+ && !Constants.DEFAULT_NAMESPACE.equals(namespace)
+ && !Constants.DEFAULT_TENANT.equals(tenant)) {
+ returnValue = (T) getInternal(Constants.DEFAULT_TENANT, Constants.DEFAULT_NAMESPACE, key,
+ clazz.isPrimitive() ? getWrapperClass(clazz) : clazz,
+ hints == null || hints.length == 0 ? new Hint[]{Hint.EXTERNAL_LOOKUP, Hint.NODE_SPECIFIC}
+ : hints);
+ }
+ if (returnValue == null && clazz.isPrimitive()) {
+ return (T) ConfigurationUtils.getDefaultFor(clazz);
+ } else {
+ return returnValue;
+ }
+ }
+
+
+ /**
+ * Gets internal.
+ *
+ * @param <T> the type parameter
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @param key the key
+ * @param clazz the clazz
+ * @param hints the hints
+ * @return the internal
+ */
+ protected <T> T getInternal(String tenant, String namespace, String key, Class<T> clazz,
+ Hint... hints) {
+ int processingHints = Hint.DEFAULT.value();
+ if (hints != null) {
+ for (Hint hint : hints) {
+ processingHints = processingHints | hint.value();
+ }
+ }
+
+ if (tenant == null || tenant.trim().length() == 0) {
+ tenant = this.tenant.get();
+ } else {
+ tenant = tenant.toUpperCase();
+ }
+ if (namespace == null || namespace.trim().length() == 0) {
+ namespace = Constants.DEFAULT_NAMESPACE;
+ } else {
+ namespace = namespace.toUpperCase();
+ }
+ if (key == null || key.trim().length() == 0) {
+ if (!clazz.isAnnotationPresent(Config.class)) {
+ throw new IllegalArgumentException("Key can't be null.");
+ }
+ }
+ if (clazz == null) {
+ throw new IllegalArgumentException("clazz is null.");
+ }
+ if (clazz.isPrimitive()) {
+ clazz = getWrapperClass(clazz);
+ }
+ try {
+ if (isWrapperClass(clazz) || clazz.isPrimitive()) {
+ Object obj =
+ getProperty(ConfigurationRepository.lookup().getConfigurationFor(tenant, namespace),
+ key, processingHints);
+ if (obj != null) {
+ if (ConfigurationUtils.isCollection(obj.toString())) {
+ obj = ConfigurationUtils.getCollectionString(obj.toString());
+ }
+ String value = obj.toString().split(",")[0];
+ value = ConfigurationUtils.processVariablesIfPresent(tenant, namespace, value);
+ return (T) getValue(value, clazz.isPrimitive() ? getWrapperClass(clazz) : clazz,
+ processingHints);
+ } else {
+ return null;
+ }
+ } else if (clazz.isArray()
+ && (clazz.getComponentType().isPrimitive() || isWrapperClass(clazz.getComponentType()))) {
+ Object obj =
+ getProperty(ConfigurationRepository.lookup().getConfigurationFor(tenant, namespace),
+ key, processingHints);
+ if (obj != null) {
+ Class componentClass = clazz.getComponentType();
+ if (clazz.getComponentType().isPrimitive()) {
+ componentClass = getWrapperClass(clazz.getComponentType());
+ }
+ String collString = ConfigurationUtils.getCollectionString(obj.toString());
+ ArrayList<String> tempCollection = new ArrayList<>();
+ for (String itemValue : collString.split(",")) {
+ tempCollection
+ .add(ConfigurationUtils.processVariablesIfPresent(tenant, namespace, itemValue));
+ }
+ Collection<T> collection = convert(
+ ConfigurationUtils.getCollectionString(Arrays.toString(tempCollection.toArray())),
+ componentClass, processingHints);
+ if (clazz.getComponentType().isPrimitive()) {
+ return (T) ConfigurationUtils.getPrimitiveArray(collection, clazz.getComponentType());
+ } else {
+ return (T) collection
+ .toArray(getZeroLengthArrayFor(getWrapperClass(clazz.getComponentType())));
+ }
+ } else {
+ return null;
+ }
+ } else if (clazz.isAnnotationPresent(Config.class)) {
+ return read(tenant, namespace, clazz,
+ (key == null || key.trim().length() == 0) ? "" : (key + "."), hints);
+ } else {
+ throw new IllegalArgumentException(
+ "Only pimitive classes, wrapper classes, corresponding array classes and any "
+ + "class decorated with @org.openecomp.config.api.Config are allowed as argument.");
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ return null;
+ }
+
+
+ private <T> T read(String tenant, String namespace, Class<T> clazz, String keyPrefix,
+ Hint... hints) throws Exception {
+ org.openecomp.config.api.Config confAnnot =
+ clazz.getAnnotation(org.openecomp.config.api.Config.class);
+ if (confAnnot != null && confAnnot.key().length()>0 && !keyPrefix.endsWith(".")) {
+ keyPrefix += (confAnnot.key() + ".");
+ }
+ Constructor<T> constructor = clazz.getDeclaredConstructor();
+ constructor.setAccessible(true);
+ T objToReturn = constructor.newInstance();
+ for (Field field : clazz.getDeclaredFields()) {
+ field.setAccessible(true);
+ org.openecomp.config.api.Config fieldConfAnnot =
+ field.getAnnotation(org.openecomp.config.api.Config.class);
+ if (fieldConfAnnot != null) {
+ if (field.getType().isPrimitive() || isWrapperClass(field.getType())
+ || (field.getType().isArray() && (field.getType().getComponentType().isPrimitive()
+ || isWrapperClass(field.getType().getComponentType())))
+ || field.getType().getAnnotation(org.openecomp.config.api.Config.class) != null) {
+ field.set(objToReturn,
+ get(tenant, namespace, keyPrefix + fieldConfAnnot.key(), field.getType(), hints));
+ } else if (Collection.class.isAssignableFrom(field.getType())) {
+ Object obj = get(tenant, namespace, keyPrefix + fieldConfAnnot.key(),
+ ConfigurationUtils.getArrayClass(ConfigurationUtils.getCollectionGenericType(field)),
+ hints);
+ if (obj != null) {
+ List list = Arrays.asList((Object[]) obj);
+ Class clazzToInstantiate = null;
+ if (field.getType().isInterface()) {
+ clazzToInstantiate =
+ ConfigurationUtils.getConcreteCollection(field.getType()).getClass();
+ } else if (Modifier.isAbstract(field.getType().getModifiers())) {
+ clazzToInstantiate =
+ ConfigurationUtils.getCompatibleCollectionForAbstractDef(field.getType())
+ .getClass();
+ } else {
+ clazzToInstantiate = field.getType();
+ }
+ Constructor construct =
+ getConstructorWithArguments(clazzToInstantiate, Collection.class);
+ if (construct != null) {
+ construct.setAccessible(true);
+ field.set(objToReturn, construct.newInstance(list));
+ } else if ((construct =
+ getConstructorWithArguments(clazzToInstantiate, Integer.class, Boolean.class,
+ Collection.class)) != null) {
+ construct.setAccessible(true);
+ field.set(objToReturn, construct.newInstance(list.size(), true, list));
+ }
+ }
+ }else if (Map.class.isAssignableFrom(field.getType())){
+ field.set(objToReturn, generateMap(tenant, namespace, keyPrefix+fieldConfAnnot.key()));
+ }
+ }
+ }
+ return objToReturn;
+ }
+
+ private Constructor getConstructorWithArguments(Class clazz, Class... classes) {
+ try {
+ return clazz.getDeclaredConstructor(classes);
+ } catch (Exception exception) {
+ return null;
+ }
+ }
+
+ private Class getWrapperClass(Class clazz) {
+ if (byte.class == clazz) {
+ return Byte.class;
+ } else if (short.class == clazz) {
+ return Short.class;
+ } else if (int.class == clazz) {
+ return Integer.class;
+ } else if (long.class == clazz) {
+ return Long.class;
+ } else if (float.class == clazz) {
+ return Float.class;
+ } else if (double.class == clazz) {
+ return Double.class;
+ } else if (char.class == clazz) {
+ return Character.class;
+ } else if (boolean.class == clazz) {
+ return Boolean.class;
+ }
+ return clazz;
+ }
+
+ private <T> T getValue(Object obj, Class<T> clazz, int processingHint) {
+ if (obj == null || obj.toString().trim().length() == 0) {
+ return null;
+ } else {
+ obj = obj.toString().trim();
+ }
+ if (String.class.equals(clazz)) {
+ if (obj.toString().startsWith("@") && isExternalLookup(processingHint)) {
+ String contents = ConfigurationUtils
+ .getFileContents(NonConfigResource.locate(obj.toString().substring(1).trim()));
+ if (contents == null) {
+ contents = ConfigurationUtils.getFileContents(obj.toString().substring(1).trim());
+ }
+ if (contents != null) {
+ obj = contents;
+ }
+ }
+ return (T) obj.toString();
+ } else if (Number.class.isAssignableFrom(clazz)) {
+ Double doubleValue = Double.valueOf(obj.toString());
+ switch (clazz.getName()) {
+ case "java.lang.Byte":
+ Byte byteVal = doubleValue.byteValue();
+ return (T) byteVal;
+ case "java.lang.Short":
+ Short shortVal = doubleValue.shortValue();
+ return (T) shortVal;
+ case "java.lang.Integer":
+ Integer intVal = doubleValue.intValue();
+ return (T) intVal;
+ case "java.lang.Long":
+ Long longVal = doubleValue.longValue();
+ return (T) longVal;
+ case "java.lang.Float":
+ Float floatVal = doubleValue.floatValue();
+ return (T) floatVal;
+ case "java.lang.Double":
+ Double doubleVal = doubleValue.doubleValue();
+ return (T) doubleVal;
+ default:
+ }
+ } else if (Boolean.class.equals(clazz)) {
+ return (T) Boolean.valueOf(obj.toString());
+ } else if (Character.class.equals(clazz)) {
+ return (T) Character.valueOf(obj.toString().charAt(0));
+ }
+ return null;
+ }
+
+ private <T> T[] getZeroLengthArrayFor(Class<T> clazz) {
+ Object obj = null;
+ if (clazz == int.class) {
+ obj = new int[]{};
+ } else if (clazz == byte.class) {
+ obj = new byte[]{};
+ } else if (clazz == short.class) {
+ obj = new short[]{};
+ } else if (clazz == long.class) {
+ obj = new long[]{};
+ } else if (clazz == float.class) {
+ obj = new float[]{};
+ } else if (clazz == double.class) {
+ obj = new double[]{};
+ } else if (clazz == boolean.class) {
+ obj = new boolean[]{};
+ } else if (clazz == char.class) {
+ obj = new char[]{};
+ } else if (clazz == Byte.class) {
+ obj = new Byte[]{};
+ } else if (clazz == Short.class) {
+ obj = new Short[]{};
+ } else if (clazz == Integer.class) {
+ obj = new Integer[]{};
+ } else if (clazz == Long.class) {
+ obj = new Long[]{};
+ } else if (clazz == Float.class) {
+ obj = new Float[]{};
+ } else if (clazz == Double.class) {
+ obj = new Double[]{};
+ } else if (clazz == Boolean.class) {
+ obj = new Boolean[]{};
+ } else if (clazz == Character.class) {
+ obj = new Character[]{};
+ } else if (clazz == String.class) {
+ obj = new String[]{};
+ }
+ return (T[]) obj;
+ }
+
+ private <T> Collection<T> convert(String commaSaperatedValues, Class<T> clazz,
+ int processingHints) {
+ ArrayList<T> collection = new ArrayList<>();
+ for (String value : commaSaperatedValues.split(",")) {
+ try {
+ T type1 = getValue(value, clazz, processingHints);
+ if (type1 != null) {
+ collection.add(type1);
+ }
+ } catch (RuntimeException re) {
+ // do nothing
+ }
+ }
+ return collection;
+ }
+
+ /**
+ * Shutdown.
+ */
+ public void shutdown() {
+ if (changeNotifier != null) {
+ try {
+ changeNotifier.shutdown();
+ ConfigurationDataSource.lookup().close();
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public void removeConfigurationChangeListener(String tenant, String namespace, String key,
+ ConfigurationChangeListener myself) {
+ tenant = ConfigurationRepository.lookup().isValidTenant(tenant) ? tenant.toUpperCase()
+ : Constants.DEFAULT_TENANT;
+ namespace =
+ ConfigurationRepository.lookup().isValidNamespace(namespace) ? namespace.toUpperCase()
+ : Constants.DEFAULT_NAMESPACE;
+ if (key == null || key.trim().length() == 0) {
+ throw new IllegalArgumentException("Key can't be null.");
+ }
+ try {
+ changeNotifier.stopNotificationTowards(tenant, namespace, key, myself);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ @Override
+ public <T> Map<String, T> populateMap(String tenantId, String namespace, String key, Class<T> clazz){
+ if (tenantId==null || tenantId.trim().length()==0){
+ tenantId = this.tenant.get();
+ }else{
+ tenantId = tenantId.toUpperCase();
+ }
+ if (namespace==null || namespace.trim().length()==0){
+ namespace = DEFAULT_NAMESPACE;
+ }else{
+ namespace = namespace.toUpperCase();
+ }
+ Map<String, T> map = new HashMap<>();
+ Iterator<String> keys ;
+ try {
+ if (ConfigurationRepository.lookup().isDBAccessible()){
+ keys = ConfigurationUtils.executeSelectSql(ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE).getString("fetchkeysql"), new String[]{tenantId+KEY_ELEMENTS_DELEMETER+namespace}).iterator();
+ }else{
+ keys = ConfigurationRepository.lookup().getConfigurationFor(tenantId, namespace).getKeys(key);
+ }
+ while(keys.hasNext()){
+ String k = keys.next();
+ if (k.startsWith(key+".")){
+ k = k.substring(key.length()+1);
+ String subkey = k.substring(0, k.indexOf("."));
+ if (!map.containsKey(subkey)){
+ map.put(subkey, get(tenantId, namespace, key+"."+subkey, clazz));
+ }
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return map;
+ }
+
+ @Override
+ public Map generateMap(String tenantId, String namespace, String key){
+ if (tenantId==null || tenantId.trim().length()==0){
+ tenantId = this.tenant.get();
+ }else{
+ tenantId = tenantId.toUpperCase();
+ }
+ if (namespace==null || namespace.trim().length()==0){
+ namespace = DEFAULT_NAMESPACE;
+ }else{
+ namespace = namespace.toUpperCase();
+ }
+ Map map, parentMap = new HashMap<>();
+ Iterator<String> keys ;
+ try {
+ if (ConfigurationRepository.lookup().isDBAccessible()){
+ keys = ConfigurationUtils.executeSelectSql(ConfigurationRepository.lookup().getConfigurationFor(DEFAULT_TENANT, DB_NAMESPACE).getString("fetchkeysql"), new String[]{tenantId+KEY_ELEMENTS_DELEMETER+namespace}).iterator();
+ }else{
+ if (key==null || key.trim().length()==0){
+ keys = ConfigurationRepository.lookup().getConfigurationFor(tenantId, namespace).getKeys();
+ }else{
+ keys = ConfigurationRepository.lookup().getConfigurationFor(tenantId, namespace).getKeys(key);
+ }
+ }
+ while(keys.hasNext()){
+ map = parentMap;
+ String k = keys.next();
+
+ if (key!=null && key.trim().length()!=0 && !k.startsWith(key+".")){
+ continue;
+ }
+ String value = getAsString(tenantId, namespace, k);
+ if (key!=null && key.trim().length()!=0 && k.startsWith(key+".")){
+ k = k.substring(key.trim().length()+1);
+ }
+
+ while(k.contains(".")){
+ if (k.contains(".")){
+ String subkey = k.substring(0, k.indexOf("."));
+ k = k.substring(k.indexOf(".")+1);
+ if (!map.containsKey(subkey)){
+ map.put(subkey, map=new HashMap<>());
+ }else{
+ map = (Map)map.get(subkey);
+ }
+ }
+ }
+ map.put(k, value);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return parentMap;
+ }
+
+
+
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationRepository.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationRepository.java
new file mode 100644
index 0000000000..103b43db05
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ConfigurationRepository.java
@@ -0,0 +1,415 @@
+package org.openecomp.config.impl;
+
+import org.apache.commons.configuration2.CombinedConfiguration;
+import org.apache.commons.configuration2.CompositeConfiguration;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.FileBasedConfiguration;
+import org.apache.commons.configuration2.builder.BasicConfigurationBuilder;
+import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
+import org.apache.commons.configuration2.ex.ConfigurationException;
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.Constants;
+
+import java.io.File;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * The type Configuration repository.
+ */
+public final class ConfigurationRepository {
+
+ /**
+ * The Repo.
+ */
+ static ConfigurationRepository repo;
+ private static Set<String> validCallers = Collections.unmodifiableSet(new HashSet<>(Arrays
+ .asList(ConfigurationChangeNotifier.NotificationData.class.getName(),
+ ConfigurationUtils.class.getName(), CliConfigurationImpl.class.getName(),
+ ConfigurationChangeNotifier.class.getName(), ConfigurationDataSource.class.getName(),
+ ConfigurationImpl.class.getName())));
+
+ static {
+ repo = new ConfigurationRepository();
+ }
+
+ private boolean dbAccessible = true;
+ private Set<String> tenants = new HashSet<>();
+ private Set<String> namespaces = new HashSet<>();
+ private LinkedHashMap<String, ConfigurationHolder> store =
+ new LinkedHashMap<String, ConfigurationHolder>(16, 0.75f, true) {
+ protected boolean removeEldestEntry(Map.Entry eldest) {
+ try {
+ return size() > getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE)
+ .getInt("config.size.max");
+ } catch (Exception exception) {
+ return false;
+ }
+ }
+ };
+
+ private ConfigurationRepository() {
+ if (repo != null) {
+ throw new RuntimeException("Illegal access to configuration.");
+ }
+ tenants.add(Constants.DEFAULT_TENANT);
+ namespaces.add(Constants.DEFAULT_NAMESPACE);
+ }
+
+ /**
+ * Lookup configuration repository.
+ *
+ * @return the configuration repository
+ */
+ public static ConfigurationRepository lookup() {
+ if (validCallers.contains(Thread.currentThread().getStackTrace()[2].getClassName())) {
+ return repo;
+ }
+ return null;
+ }
+
+ /**
+ * Gets tenants.
+ *
+ * @return the tenants
+ */
+ public Set<String> getTenants() {
+ return tenants;
+ }
+
+ /**
+ * Gets namespaces.
+ *
+ * @return the namespaces
+ */
+ public Set<String> getNamespaces() {
+ return namespaces;
+ }
+
+ private void populateTenantsNamespace(String key, boolean sourcedFromDb) {
+ String[] array = key.split(Constants.KEY_ELEMENTS_DELEMETER);
+ if (!array[1].toUpperCase().equals(Constants.DB_NAMESPACE)) {
+ if (!sourcedFromDb) {
+ dbAccessible = false;
+ }
+ tenants.add(array[0]);
+ namespaces.add(array[1]);
+ }
+ }
+
+ /**
+ * Init tenants and namespaces.
+ */
+ public void initTenantsAndNamespaces() {
+ try {
+ Collection<String> collection = ConfigurationUtils.executeSelectSql(
+ getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE)
+ .getString("fetchnamescql"), new String[]{});
+ Iterator<String> iterator = collection.iterator();
+ while (iterator.hasNext()) {
+ populateTenantsNamespace(iterator.next(), true);
+ }
+ } catch (Exception exception) {
+ //exception.printStackTrace();
+ }
+ }
+
+ /**
+ * Is valid tenant boolean.
+ *
+ * @param tenant the tenant
+ * @return the boolean
+ */
+ public boolean isValidTenant(String tenant) {
+ return tenant == null ? false : tenants.contains(tenant.toUpperCase());
+ }
+
+ /**
+ * Is valid namespace boolean.
+ *
+ * @param namespace the namespace
+ * @return the boolean
+ */
+ public boolean isValidNamespace(String namespace) {
+ return namespace == null ? false : namespaces.contains(namespace.toUpperCase());
+ }
+
+ /**
+ * Gets configuration for.
+ *
+ * @param tenant the tenant
+ * @param namespace the namespace
+ * @return the configuration for
+ * @throws Exception the exception
+ */
+ public Configuration getConfigurationFor(String tenant, String namespace) throws Exception {
+ ConfigurationHolder config = null;
+ String module = tenant + Constants.KEY_ELEMENTS_DELEMETER + namespace;
+ config = store.get(module);
+ if (config == null) {
+ config = new ConfigurationHolder(ConfigurationUtils
+ .getDbConfigurationBuilder(tenant + Constants.KEY_ELEMENTS_DELEMETER + namespace));
+ store.put(module, config);
+ }
+ return config.getConfiguration(tenant + Constants.KEY_ELEMENTS_DELEMETER + namespace);
+ }
+
+ /**
+ * Populate configurtaion.
+ *
+ * @param key the key
+ * @param builder the builder
+ */
+ public void populateConfigurtaion(String key, Configuration builder) {
+ store.put(key, new ConfigurationHolder(builder));
+ populateTenantsNamespace(key, false);
+ }
+
+ /**
+ * Populate configurtaion.
+ *
+ * @param key the key
+ * @param builder the builder
+ * @throws Exception the exception
+ */
+ public void populateConfigurtaion(String key, BasicConfigurationBuilder builder)
+ throws Exception {
+ store.put(key, new ConfigurationHolder(builder));
+ }
+
+ /**
+ * Populate override configurtaion.
+ *
+ * @param key the key
+ * @param file the file
+ * @throws Exception the exception
+ */
+ public void populateOverrideConfigurtaion(String key, File file) throws Exception {
+ ConfigurationHolder holder = store.get(key);
+ if (holder == null) {
+ if (dbAccessible) {
+ store.put(key,
+ holder = new ConfigurationHolder(ConfigurationUtils.getDbConfigurationBuilder(key)));
+ } else {
+ store.put(key, holder = new ConfigurationHolder(new CombinedConfiguration()));
+ }
+ }
+ holder.addOverrideConfiguration(file.getAbsolutePath(),
+ ConfigurationUtils.getConfigurationBuilder(file, true));
+ populateTenantsNamespace(key, true);
+ }
+
+ /**
+ * Refresh override configurtaion for.
+ *
+ * @param key the key
+ * @param index the index
+ * @throws Exception the exception
+ */
+ public void refreshOverrideConfigurtaionFor(String key, int index) throws Exception {
+ ConfigurationHolder holder = store.get(key);
+ if (holder != null) {
+ holder.refreshOverrideConfiguration(index);
+ }
+ }
+
+ /**
+ * Remove override configurtaion.
+ *
+ * @param file the file
+ * @throws Exception the exception
+ */
+ public void removeOverrideConfigurtaion(File file) throws Exception {
+ Iterator<String> iterator = new ArrayList(store.keySet()).iterator();
+ while (iterator.hasNext()) {
+ ConfigurationHolder holder = store.get(iterator.next());
+ if (holder.containsOverrideConfiguration(file.getAbsolutePath())) {
+ holder.removeOverrideConfiguration(file.getAbsolutePath());
+ }
+ }
+
+ }
+
+ private class ConfigurationHolder {
+
+ /**
+ * The Builder.
+ */
+ BasicConfigurationBuilder<Configuration> builder;
+ /**
+ * The Last configuration build time.
+ */
+ Timestamp lastConfigurationBuildTime;
+ /**
+ * The Config.
+ */
+ Configuration config;
+ /**
+ * The Composite.
+ */
+ Configuration composite;
+ /**
+ * The Last config change timestamp.
+ */
+ Timestamp lastConfigChangeTimestamp;
+ private Map<String, FileBasedConfigurationBuilder<FileBasedConfiguration>>
+ overrideConfiguration = new LinkedHashMap<>();
+
+
+ /**
+ * Instantiates a new Configuration holder.
+ *
+ * @param builder the builder
+ */
+ public ConfigurationHolder(BasicConfigurationBuilder builder) {
+ this.builder = builder;
+ }
+
+ /**
+ * Instantiates a new Configuration holder.
+ *
+ * @param builder the builder
+ */
+ public ConfigurationHolder(Configuration builder) {
+ this.config = builder;
+ }
+
+ /**
+ * Refresh override configuration.
+ *
+ * @param index the index
+ */
+ public void refreshOverrideConfiguration(int index) {
+ int count = -1;
+ for (FileBasedConfigurationBuilder overrides : overrideConfiguration.values()) {
+ try {
+ if (++count == index) {
+ overrides.save();
+ overrides.resetResult();
+ }
+ } catch (ConfigurationException exception) {
+ //do nothing
+ }
+ }
+ }
+
+ /**
+ * Add override configuration.
+ *
+ * @param path the path
+ * @param builder the builder
+ */
+ public void addOverrideConfiguration(String path,
+ BasicConfigurationBuilder<FileBasedConfiguration> builder) {
+ overrideConfiguration.put(path.toUpperCase(), (FileBasedConfigurationBuilder) builder);
+ getEffectiveConfiguration(config, overrideConfiguration.values());
+ }
+
+ /**
+ * Remove override configuration.
+ *
+ * @param path the path
+ */
+ public void removeOverrideConfiguration(String path) {
+ overrideConfiguration.remove(path.toUpperCase());
+ getEffectiveConfiguration(config, overrideConfiguration.values());
+ }
+
+ /**
+ * Contains override configuration boolean.
+ *
+ * @param path the path
+ * @return the boolean
+ */
+ public boolean containsOverrideConfiguration(String path) {
+ return overrideConfiguration.containsKey(path.toUpperCase());
+ }
+
+ /**
+ * Gets configuration.
+ *
+ * @param namespace the namespace
+ * @return the configuration
+ * @throws Exception the exception
+ */
+ public Configuration getConfiguration(String namespace) throws Exception {
+ if (config == null) {
+ config = builder.getConfiguration();
+ lastConfigurationBuildTime = new Timestamp(System.currentTimeMillis());
+ } else if (lastConfigurationBuildTime != null
+ && System.currentTimeMillis() - lastConfigurationBuildTime.getTime()
+ > getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE)
+ .getInt("config.refresh.interval")) {
+ Timestamp temp = getLastUpdateTimestampFor(namespace);
+ if (temp != null) {
+ if (lastConfigChangeTimestamp == null
+ || temp.getTime() > lastConfigChangeTimestamp.getTime()) {
+ builder.resetResult();
+ config = builder.getConfiguration();
+ lastConfigChangeTimestamp = temp;
+ getEffectiveConfiguration(config, overrideConfiguration.values());
+ }
+ }
+ lastConfigurationBuildTime = new Timestamp(System.currentTimeMillis());
+ }
+ if (composite == null && overrideConfiguration.size() != 0) {
+ composite = getEffectiveConfiguration(config, overrideConfiguration.values());
+ }
+ return overrideConfiguration.size() == 0 ? config : composite;
+ }
+
+ private Configuration getEffectiveConfiguration(Configuration configuration,
+ Collection<FileBasedConfigurationBuilder<FileBasedConfiguration>> list) {
+ try {
+ CompositeConfiguration cc = new CompositeConfiguration();
+ for (FileBasedConfigurationBuilder<FileBasedConfiguration> b : list) {
+ cc.addConfiguration(b.getConfiguration());
+ }
+ cc.addConfiguration(configuration);
+ return composite = cc;
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ return null;
+ }
+ }
+
+ /**
+ * Gets last update timestamp for.
+ *
+ * @param namespace the namespace
+ * @return the last update timestamp for
+ */
+ public Timestamp getLastUpdateTimestampFor(String namespace) {
+ Timestamp timestamp = null;
+
+ try {
+ Collection<String> collection = ConfigurationUtils.executeSelectSql(
+ getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE)
+ .getString("fetchlastchangecql"), new String[]{namespace});
+ if (!collection.isEmpty()) {
+ timestamp = new Timestamp(Long.valueOf(((ArrayList) collection).get(0).toString()));
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+
+ return timestamp;
+ }
+
+
+ }
+
+ public boolean isDBAccessible(){
+ return dbAccessible;
+ }
+
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ContextListener.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ContextListener.java
new file mode 100644
index 0000000000..a355073116
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/ContextListener.java
@@ -0,0 +1,48 @@
+package org.openecomp.config.impl;
+
+import static org.openecomp.config.Constants.MBEAN_NAME;
+
+import org.apache.commons.beanutils.FluentPropertyBeanIntrospector;
+import org.openecomp.config.api.ConfigurationManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.management.ManagementFactory;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import javax.management.ObjectName;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.annotation.WebListener;
+
+@WebListener
+public class ContextListener implements ServletContextListener {
+
+ @Override
+ public void contextDestroyed(ServletContextEvent arg0) {
+ try {
+ ManagementFactory.getPlatformMBeanServer().unregisterMBean(new ObjectName(MBEAN_NAME));
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ @Override
+ public void contextInitialized(ServletContextEvent arg0) {
+ try {
+ ConfigurationManager.lookup();
+ Logger logger = LoggerFactory.getLogger(FluentPropertyBeanIntrospector.class);
+ Method method = logger.getClass().getDeclaredMethod("getLevel");
+ method.setAccessible(true);
+ Object object = method.invoke(logger);
+ method = logger.getClass().getDeclaredMethod("setLevel", object.getClass());
+ method.setAccessible(true);
+ Field field = object.getClass().getDeclaredField("ERROR");
+ field.setAccessible(true);
+ method.invoke(logger, field.get(logger));
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/YamlConfiguration.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/YamlConfiguration.java
new file mode 100644
index 0000000000..6e107e95c8
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/impl/YamlConfiguration.java
@@ -0,0 +1,18 @@
+package org.openecomp.config.impl;
+
+import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
+import com.virtlink.commons.configuration2.jackson.JacksonConfiguration;
+import org.apache.commons.configuration2.HierarchicalConfiguration;
+import org.apache.commons.configuration2.tree.ImmutableNode;
+
+public class YamlConfiguration extends JacksonConfiguration {
+
+ protected YamlConfiguration(HierarchicalConfiguration<ImmutableNode> config) {
+ super(new YAMLFactory(), config);
+ }
+
+ public YamlConfiguration() {
+ super(new YAMLFactory());
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationMode.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationMode.java
new file mode 100644
index 0000000000..475a4cae85
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationMode.java
@@ -0,0 +1,5 @@
+package org.openecomp.config.type;
+
+public enum ConfigurationMode {
+ OVERRIDE, UNION, MERGE
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationQuery.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationQuery.java
new file mode 100644
index 0000000000..53b0eed954
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationQuery.java
@@ -0,0 +1,94 @@
+package org.openecomp.config.type;
+
+import org.openecomp.config.Constants;
+
+public class ConfigurationQuery {
+
+ String tenant = Constants.DEFAULT_TENANT;
+ String namespace = Constants.DEFAULT_NAMESPACE;
+ String key;
+ boolean fallback;
+ boolean externalLookup;
+ boolean latest;
+ private boolean nodeSpecific;
+
+ public ConfigurationQuery fallback(boolean fallback) {
+ this.fallback = fallback;
+ return this;
+ }
+
+ public ConfigurationQuery latest(boolean val) {
+ this.latest = val;
+ return this;
+ }
+
+ public ConfigurationQuery nodeSpecific(boolean val) {
+ this.nodeSpecific = val;
+ return this;
+ }
+
+ public ConfigurationQuery externalLookup(boolean val) {
+ this.externalLookup = val;
+ return this;
+ }
+
+ /**
+ * Tenant configuration query.
+ *
+ * @param id the id
+ * @return the configuration query
+ */
+ public ConfigurationQuery tenant(String id) {
+ if (id != null) {
+ tenant = id;
+ }
+ return this;
+ }
+
+
+ /**
+ * Namespace configuration query.
+ *
+ * @param id the id
+ * @return the configuration query
+ */
+ public ConfigurationQuery namespace(String id) {
+ if (id != null) {
+ namespace = id;
+ }
+ return this;
+ }
+
+ public ConfigurationQuery key(String id) {
+ key = id;
+ return this;
+ }
+
+ public String getTenant() {
+ return tenant.toUpperCase();
+ }
+
+ public String getNamespace() {
+ return namespace.toUpperCase();
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ public boolean isFallback() {
+ return fallback;
+ }
+
+ public boolean isNodeSpecific() {
+ return nodeSpecific;
+ }
+
+ public boolean isExternalLookup() {
+ return externalLookup;
+ }
+
+ public boolean isLatest() {
+ return latest;
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationType.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationType.java
new file mode 100644
index 0000000000..d34d2e4e1c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationType.java
@@ -0,0 +1,5 @@
+package org.openecomp.config.type;
+
+public enum ConfigurationType {
+ PROPERTIES, XML, JSON, YAML
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationUpdate.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationUpdate.java
new file mode 100644
index 0000000000..9cfc980399
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/type/ConfigurationUpdate.java
@@ -0,0 +1,33 @@
+package org.openecomp.config.type;
+
+public class ConfigurationUpdate extends ConfigurationQuery {
+ private String value;
+ private boolean nodeOverride;
+
+ public ConfigurationUpdate value(String val) {
+ value = val;
+ return this;
+ }
+
+ public ConfigurationUpdate nodeOverride(boolean val) {
+ nodeOverride = val;
+ return this;
+ }
+
+ /**
+ * Gets value.
+ *
+ * @return the value
+ */
+ public String getValue() {
+ if (value != null && value.split(",").length > 1 && !value.matches("^\\[.*\\]$")) {
+ return "[" + value + "]";
+ }
+ return value;
+ }
+
+ public boolean isNodeOverride() {
+ return nodeOverride;
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/META-INF/services/org.openecomp.config.api.ConfigurationManager b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/META-INF/services/org.openecomp.config.api.ConfigurationManager
new file mode 100644
index 0000000000..2a6c217345
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/META-INF/services/org.openecomp.config.api.ConfigurationManager
@@ -0,0 +1 @@
+org.openecomp.config.impl.CliConfigurationImpl \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/config-system.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/config-system.properties
new file mode 100644
index 0000000000..934f0fcf37
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/config-system.properties
@@ -0,0 +1,22 @@
+driverClassName=com.github.adejanovski.cassandra.jdbc.CassandraDriver
+jdbcURL=jdbc:${dbname}://${dbhost}:${dbport}/${configdb}
+dbuser=
+dbpassword=
+config.Table=configuration
+config.monitor.Table=configuration_change
+configKey=key
+configValue=value
+configNameColumn=name
+configdb=dox
+dbhost=127.0.0.1
+dbport=9042
+dbname=cassandra
+createtablecql=create table if not exists ${configdb}.${config.Table} (name text\, key text\, value text\, PRIMARY KEY (name\, key)) with clustering order by (key asc)
+createmonitoringtablecql=create table if not exists ${configdb}.${config.monitor.Table} (name text\, changed_when bigint\, key text\, old_value text\, new_value text\, PRIMARY KEY (name\, changed_when)) with clustering order by (changed_when desc)
+insertconfigurationchangecql=insert into ${configdb}.${config.monitor.Table} (name\, changed_when\, key\, old_value\, new_value) values(?\, ?\, ?\, ?\, ?)
+fetchkeysql=select ${configKey} from ${config.Table} where ${configNameColumn}=?
+fetchlastchangecql=select changed_when from ${configdb}.${config.monitor.Table} where name=? limit 1
+fetchnamescql=select distinct name from ${configdb}.${config.Table}
+config.size.max=100
+config.refresh.interval=30000
+event.fetch.delay=5000 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/management.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/management.properties
new file mode 100644
index 0000000000..9874394726
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/resources/management.properties
@@ -0,0 +1,7 @@
+com.sun.management.jmxremote=true
+#com.sun.management.jmxremote.port=9999
+#com.sun.management.jmxremote.local.only=false
+#com.sun.management.jmxremote.authenticate=false
+#com.sun.management.jmxremote.password.file=resources/jmxremote.password
+#com.sun.management.jmxremote.access.file=resources/jmxremote.access
+#com.sun.management.jmxremote.ssl=false \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/pom.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/pom.xml
new file mode 100644
index 0000000000..ee25013a7c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/pom.xml
@@ -0,0 +1,84 @@
+<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-configuration-management-test</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-test</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-configuration-management</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <!-- <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin-->
+ <!--<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${mvn.surefire.version}</version>
+ </plugin>-->
+ <!-- any other plugins -->
+ <!-- <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>${mvn.shade.version}</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <artifactSet>
+ <excludes>
+ <exclude>com.google.guava:*</exclude>
+ </excludes>
+ </artifactSet>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>-->
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${mvn.surefire.version}</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ <systemPropertyVariables>
+ <config.location>${project.basedir}/src/test/resources</config.location>
+ <node.config.location>${user.home}/TestResources</node.config.location>
+ </systemPropertyVariables>
+ <includes>
+ <include>**/TestCMSuite.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java
new file mode 100644
index 0000000000..4ef46f6c9d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java
@@ -0,0 +1,58 @@
+package org.openecomp.config;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.test.*;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * Created by sheetalm on 10/25/2016.
+ */
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+ JAVAPropertiesConfigTest.class,
+ JSONConfigTest.class,
+ XMLConfigTest.class,
+ YAMLConfigTest.class,
+ CLIFallbackAndLookupTest.class,
+ CLITest.class,
+ ConfigSourceLocationTest.class,
+ DynamicConfigurationTest.class,
+ FallbackConfigTest.class,
+ FallbackToGlobalNSTest.class,
+ GlobalAndNSConfigTest.class,
+ ModeAsConfigPropTest.class,
+ MultiTenancyConfigTest.class,
+ NodeSpecificCLITest.class,
+ NotificationForNodeConfigTest.class,
+ NotificationOnPropValTest.class,
+ ResourceChangeNotificationTest.class,
+ UnregisterNotificationTest.class,
+ ValidateDefaultModeTest.class,
+ ValidateNodeConfigTest.class,
+ LoadOrderMergeAndOverrideTest.class
+
+
+})
+
+public class TestCMSuite extends junit.framework.TestSuite {
+
+ private TestCMSuite() {
+
+ }
+
+ @AfterClass
+ public static void tearDown(){
+ try {
+ ConfigurationUtils.executeDdlSql("truncate dox.configuration_change");
+ ConfigurationUtils.executeDdlSql("truncate dox.configuration");
+ }
+ catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java
new file mode 100644
index 0000000000..4f7ab92dd0
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java
@@ -0,0 +1,83 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.Assert;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.HashMap;
+import java.util.Map;
+
+
+
+/**
+ * Created by sheetalm on 10/18/2016.
+ * Scenario 21, Scenario 23
+ * 21 - Verify the CLI fetches only the current value unless the fallback option is specified
+ * 23 - Fetch value using CLI for a key with underlying resource
+ */
+public class CLIFallbackAndLookupTest {
+
+ public final static String NAMESPACE = "CLIFallback";
+ public final static String TENANT = "OPENECOMP";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testCLIFallbackAndLookup() throws Exception{
+
+ //Verify without fallback
+ Map<String, Object> input = new HashMap<>();
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+ input.put("tenant", TENANT);
+ input.put("namespace", NAMESPACE);
+ input.put("key", ConfigTestConstant.ARTIFACT_MAXSIZE);
+
+ MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+ ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
+ ConfigurationManager conf = JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class, true);
+ String maxSizeWithNoFallback = conf.getConfigurationValue(input);
+ Assert.assertEquals("",maxSizeWithNoFallback);
+
+ //Verify underlying resource without lookup switch
+ input.put("key", ConfigTestConstant.ARTIFACT_JSON_SCHEMA);
+ String jsonSchema = conf.getConfigurationValue(input);
+ System.out.println("jsonSchema=="+jsonSchema);
+ Assert.assertEquals("@"+System.getProperty("user.home")+"/TestResources/GeneratorsList.json" , jsonSchema);
+
+ //Verify underlying resource with lookup switch
+ input.put("externalLookup", true);
+ jsonSchema = conf.getConfigurationValue(input);
+ System.out.println("jsonSchema=="+jsonSchema);
+ Assert.assertEquals("{name:\"SCM\"}" , jsonSchema);
+
+ //Verify with fallback
+ Map<String, Object> fallbackInput = new HashMap<>();
+ fallbackInput.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+ fallbackInput.put("fallback", true);
+ fallbackInput.put("tenant", TENANT);
+ fallbackInput.put("namespace", NAMESPACE);
+ fallbackInput.put("key", ConfigTestConstant.ARTIFACT_MAXSIZE);
+
+ String maxSizeWithFallback = conf.getConfigurationValue(fallbackInput);
+ Assert.assertEquals("1024",maxSizeWithFallback);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java
new file mode 100644
index 0000000000..ff04873b42
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java
@@ -0,0 +1,107 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+
+/**
+ * Created by sheetalm on 10/18/2016.
+ * Scenario 17
+ * Verify Configuration Management System - Command Line Interface for query, update and list operations
+ */
+public class CLITest {
+
+ public final static String NAMESPACE = "CLI";
+ public final static String TENANT = "OPENECOMP";
+ private String updatedValue = "";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testCLIApi() throws Exception{
+ //Verify without fallback
+ Map<String, Object> input = new HashMap<>();
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+ input.put("tenant", TENANT);
+ input.put("namespace", NAMESPACE);
+ input.put("key", ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH);
+
+ MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+ ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
+ ConfigurationManager conf = JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class, true);
+ String maxLength = conf.getConfigurationValue(input);
+ Assert.assertEquals("14",maxLength);
+
+ conf.addConfigurationChangeListener(TENANT,NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new CLIListener());
+
+
+ //Update maxlength
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationUpdate");
+ input.put("value", "24");
+ conf.updateConfigurationValue(input);
+
+ Thread.sleep(35000);
+
+ Assert.assertEquals("24",updatedValue);
+
+ //Reset value and fetch updated value again
+ input.put("value", "");
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+ String updatedMaxLength = conf.getConfigurationValue(input);
+ Assert.assertEquals("24",updatedMaxLength);
+
+ Map<String, String> outputMap = conf.listConfiguration(input);
+ for(Map.Entry<String, String> entry : outputMap.entrySet()){
+ System.out.println(entry.getKey()+" : "+entry.getValue());
+ validateCLIListConfig(outputMap);
+ }
+ }
+
+ private class CLIListener implements ConfigurationChangeListener {
+ @Override
+ public void notify(String key, Object oldValue, Object newValue) {
+ System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+ updatedValue = newValue.toString();
+ }
+ }
+
+ private void validateCLIListConfig(Map<String, String> outputMap ) {
+
+ Assert.assertEquals("@"+System.getProperty("user.home")+"/TestResources/GeneratorsList.json" , outputMap.get(ARTIFACT_JSON_SCHEMA));
+ Assert.assertEquals("appc,catalog", outputMap.get(ARTIFACT_CONSUMER));
+ Assert.assertEquals("6", outputMap.get(ARTIFACT_NAME_MINLENGTH));
+ Assert.assertEquals("true", outputMap.get(ARTIFACT_ENCODED));
+ Assert.assertEquals("24", outputMap.get(ARTIFACT_NAME_MAXLENGTH));
+ Assert.assertEquals("pdf,zip,xml,pdf,tgz,xls", outputMap.get(ARTIFACT_EXT));
+ Assert.assertEquals("Base64,MD5", outputMap.get(ARTIFACT_ENC));
+ Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json", outputMap.get(ARTIFACT_XML_SCHEMA));
+ Assert.assertEquals("a-zA-Z_0-9", outputMap.get(ARTIFACT_NAME_UPPER));
+ Assert.assertEquals("/opt/spool,"+System.getProperty("user.home")+"/asdc", outputMap.get(ARTIFACT_LOC));
+ Assert.assertEquals("deleted,Deleted", outputMap.get(ARTIFACT_STATUS));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java
new file mode 100644
index 0000000000..7eb591c6d2
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java
@@ -0,0 +1,53 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
+import java.io.OutputStream;
+import java.io.FileOutputStream;
+
+/**
+ * Created by sheetalm on 10/14/2016.
+ * Scenario 11
+ * Validate conventional and configurational source location
+ *
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ */
+public class ConfigSourceLocationTest {
+ public final static String NAMESPACE = "SourceLocation";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+
+ Properties props = new Properties();
+ props.setProperty("maxCachedBufferSize", "1024");
+ props.setProperty("artifact.maxsize", "1024");
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ OutputStream out = new FileOutputStream( f );
+ props.store(out, "Config Property at Conventional Resource");
+ out.close();
+ }
+
+ @Test
+ public void testMergeStrategyInConfig() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+ Assert.assertEquals("a-zA-Z_0-9", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER));
+ Assert.assertEquals("1024", config.getAsString(ConfigTestConstant.ARTIFACT_MAXSIZE));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java
new file mode 100644
index 0000000000..1ca41f8a81
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java
@@ -0,0 +1,66 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.api.DynamicConfiguration;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Created by sheetalm on 10/17/2016.
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ * Scenario 20
+ * Update the central configuration and fetch the Dynamic Configuration
+ */
+public class DynamicConfigurationTest {
+
+ public final static String NAMESPACE = "DynamicConfiguration";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testDynamicConfig() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+ Properties props = new Properties();
+ props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "20");
+ props.setProperty("_config.namespace",NAMESPACE);
+ props.setProperty("_config.mergeStrategy","override");
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ OutputStream out = new FileOutputStream( f );
+ props.store(out, "Override Config Property at Conventional Resource");
+ out.close();
+
+ //Verify configuration with Configuration without wait. This should fetch cached value
+ Assert.assertEquals("14" , config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ Thread.sleep(10000);
+
+ DynamicConfiguration dynaConfig = config.getDynamicConfiguration(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH,String.class,"14");
+ //Verify configuration with DynamicConfiguration This should fetch values from DB
+ Assert.assertEquals("20" , dynaConfig.get());
+
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java
new file mode 100644
index 0000000000..09fca879b0
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java
@@ -0,0 +1,39 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Validate configuration with properties,xml,json,yaml file format with mode
+ */
+public class FallbackConfigTest {
+
+ public static final String NAMESPACE = "fallback";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithFallbackFileFormat(){
+ validateConfiguraton(NAMESPACE);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ //ConfigurationUtils.executeDDLSQL("truncate dox.configuration");
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java
new file mode 100644
index 0000000000..1efc462d4e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java
@@ -0,0 +1,42 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.IOException;
+
+/**
+ * Scenario 12
+ * Verify configuration value fallback to the global namespace if the configuraton property doesnot exist in the namespace configuration
+ * Created by sheetalm on 10/14/2016.
+ */
+public class FallbackToGlobalNSTest {
+
+ public final static String NAMESPACE = "FallbackToGlobalNS";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testFallbackToGlobalNS() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+ Assert.assertEquals("14",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+ Assert.assertEquals("1024",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_MAXSIZE));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java
new file mode 100644
index 0000000000..87324aa35c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java
@@ -0,0 +1,45 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by sheetalm on 10/13/2016.
+ * Scenario 10 Verify configuration present in both global and defined namespace
+ */
+public class GlobalAndNSConfigTest {
+
+ public final static String NAMESPACE = "GlobalAndNSConfig";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testNamespaceInConfig() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+ Assert.assertEquals("a-zA-Z",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+ Assert.assertEquals("a-zA-Z_0-9",config.getAsString(ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+
+
+
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java
new file mode 100644
index 0000000000..23c5fa3130
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java
@@ -0,0 +1,40 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/13/2016.
+ *
+ * Scenario 1
+ * Validate configuration with Java Properties file format with mode
+ */
+public class JAVAPropertiesConfigTest {
+
+ public static final String NAMESPACE = "javaProperties";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithPropertiesFileFormat(){
+ validateConfiguraton(NAMESPACE);
+ }
+
+
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java
new file mode 100644
index 0000000000..5f2d24e67f
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java
@@ -0,0 +1,41 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 3
+ * Validate configuration with JSON file format with mode
+ */
+public class JSONConfigTest {
+
+ public static final String NAMESPACE = "JSONConfig";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithJSONFileFormat(){
+ validateConfiguraton(NAMESPACE);
+ }
+
+
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java
new file mode 100644
index 0000000000..7ce508a063
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java
@@ -0,0 +1,47 @@
+package org.openecomp.config.test;
+
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH;
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.TestUtil;
+
+import java.io.IOException;
+
+/**
+ * Scenario
+ * Check loadorder for merge and overide. Higher loadorder takes precedence for override
+ * LoWer loadorder takes precedence for merge.
+ */
+public class LoadOrderMergeAndOverrideTest {
+
+ public static final String NAMESPACE = "LoadOrderConfiguration";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithPropertiesFileFormat(){
+ Configuration config = ConfigurationManager.lookup();
+
+ Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "14");
+ Assert.assertEquals("5", config.getAsString(NAMESPACE, "artifact.length"));
+ Assert.assertEquals("56", config.getAsString(NAMESPACE, "artifact.size"));
+ }
+
+
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java
new file mode 100644
index 0000000000..470694e355
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java
@@ -0,0 +1,88 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Scenario 8
+ * Validate configuration with mode specified as a configuration property
+ */
+
+public class ModeAsConfigPropTest {
+
+ String newValue = null;
+
+ public final static String NAMESPACE = "ModeAsConfigProp";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testMergeStrategyInConfig() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+
+ Assert.assertEquals("14",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ Assert.assertEquals("1048",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_MAXSIZE));
+
+ List<String> expectedExtList = new ArrayList<String>();
+ expectedExtList.add("pdf");
+ expectedExtList.add("zip");
+ expectedExtList.add("xml");
+ expectedExtList.add("pdf");
+ expectedExtList.add("tgz");
+ expectedExtList.add("xls");
+ List<String> extList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_EXT);
+ Assert.assertEquals(expectedExtList, extList);
+
+ List<String> expectedEncList = new ArrayList<String>();
+ expectedEncList.add("Base64");
+ expectedEncList.add("MD5");
+ List<String> encList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_ENC);
+ Assert.assertEquals(expectedEncList, encList);
+
+ String newValue = config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_JSON_SCHEMA);
+ Assert.assertEquals("{name:\"SCM\"}",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_JSON_SCHEMA));
+
+ Assert.assertEquals("a-zA-Z_0-9",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+
+ Assert.assertEquals("Deleted",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_STATUS) );
+
+ List<String> expectedLocList = new ArrayList<String>();
+ expectedLocList.add("/opt/spool");
+ expectedLocList.add(System.getProperty("user.home")+"/asdc");
+ List<String> locList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_LOC);
+ Assert.assertEquals(expectedLocList, locList);
+
+ Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_XML_SCHEMA));
+
+ List<String> artifactConsumer = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER );
+ Assert.assertEquals(config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER_APPC ), artifactConsumer);
+
+ Assert.assertEquals(config.getAsBooleanValue(NAMESPACE, ConfigTestConstant.ARTIFACT_MANDATORY_NAME ), true);
+
+ Assert.assertEquals(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MINLENGTH ), "6");
+
+ Assert.assertEquals(config.getAsBooleanValue(NAMESPACE, ConfigTestConstant.ARTIFACT_ENCODED ), true);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java
new file mode 100644
index 0000000000..66feea3928
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java
@@ -0,0 +1,55 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_ENCODED;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_MANDATORY_NAME;
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 17
+ * Verify Configuration management System - Support for Multi-Tenancy
+ */
+public class MultiTenancyConfigTest {
+
+ public static final String NAMESPACE = "tenancy";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithMultiTenancyFileFormat(){
+ Configuration config = ConfigurationManager.lookup();
+
+ Assert.assertEquals(config.getAsString("OPENECOMP",NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "20");
+
+ Assert.assertEquals(config.getAsString("Telefonica",NAMESPACE, ARTIFACT_STATUS ), "Deleted");
+
+ Assert.assertEquals(config.getAsString("TID",NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "14");
+
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java
new file mode 100644
index 0000000000..795780b83b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java
@@ -0,0 +1,117 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Test;
+
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.lang.management.ManagementFactory;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * Created by sheetalm on 10/19/2016.
+ * Scenario 19
+ * Pre-requisite - set -Dnode.config.location=${"user.home"}/TestResources/ while running test
+ * Verify node specific override using CLI
+ */
+public class NodeSpecificCLITest {
+
+ public final static String NAMESPACE = "NodeCLI";
+ private String updatedValue = "";
+
+ @Test
+ public void testCLIApi() throws Exception{
+ //Verify without fallback
+ Map<String, Object> input = new HashMap<>();
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+ input.put("namespace", NAMESPACE);
+ input.put("key", ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH);
+
+ MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+ ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
+ ConfigurationManager conf = JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class, true);
+ String maxLength = conf.getConfigurationValue(input);
+
+ //Verify Property from Namespace configurations
+ Assert.assertEquals("30",maxLength);
+
+ //Add node specific configurations
+ Properties props = new Properties();
+ props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "50");
+ props.setProperty("_config.namespace",NAMESPACE);
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ OutputStream out = new FileOutputStream( f );
+ props.store(out, "Node Config Property");
+ out.close();
+
+ Thread.sleep(35000);
+
+ //Verify property from node specific configuration
+ input.put("nodeSpecific", true);
+ String nodeVal = conf.getConfigurationValue(input);
+ Assert.assertEquals("50", nodeVal);
+
+ //Add Change Listener
+ conf.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new CLINodeListener());
+
+ //Update maxlength
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationUpdate");
+ input.put("nodeOverride", true);
+ input.put("nodeSpecific", false);
+ input.put("value", "60");
+ conf.updateConfigurationValue(input);
+
+ Thread.sleep(35000);
+
+ Assert.assertEquals("60",updatedValue);
+
+ //Fetch the updated nodespecific value
+ input.put("nodeOverride", false);
+ input.put("nodeSpecific", true);
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+ String updatedMaxLength = conf.getConfigurationValue(input);
+ Assert.assertEquals("60",updatedMaxLength);
+
+ //Verify maxlength on other nodes by deleting node specific configuration
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ }
+
+ Thread.sleep(35000);
+
+ input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+ input.put("nodeOverride", false);
+ input.put("nodeSpecific", false);
+ System.out.println("val on other node is::"+conf.getConfigurationValue(input));
+ Assert.assertEquals("30",conf.getConfigurationValue(input));
+ }
+
+ @AfterClass
+ public static void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ }
+ }
+
+ private class CLINodeListener implements ConfigurationChangeListener {
+ @Override
+ public void notify(String key, Object oldValue, Object newValue) {
+ System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+ updatedValue = newValue.toString();
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java
new file mode 100644
index 0000000000..3d1579e25e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java
@@ -0,0 +1,85 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Scenario 15
+ * Update and Verify Change Notifications for any change in the registered key for node specific configuration
+ * Pre-requisite - set -Dnode.config.location=${"user.home"}/TestResources/ while running test
+ * Created by sheetalm on 10/17/2016.
+ */
+public class NotificationForNodeConfigTest {
+ public final static String NAMESPACE = "NotificationForNodeConfig";
+
+ public String updatedValue = null;
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testNotificationForNode() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+
+ System.out.println(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ Properties props = new Properties();
+ props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "30");
+ props.setProperty("_config.namespace",NAMESPACE);
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ OutputStream out = new FileOutputStream( f );
+ props.store(out, "Node Config Property");
+ out.close();
+
+ Thread.sleep(35000);
+
+ //Verify property from node specific configuration
+ Assert.assertEquals("30", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ config.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new NodePropValListener());
+
+ props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "80");
+ out = new FileOutputStream( f );
+ props.store(out, "Updated Node Config Property");
+ out.close();
+
+ Thread.sleep(35000);
+
+ //Verify change listenere is invoked when node specific configuration is changed.
+ Assert.assertEquals("80", updatedValue);
+
+ }
+
+ private class NodePropValListener implements ConfigurationChangeListener {
+ @Override
+ public void notify(String key, Object oldValue, Object newValue) {
+ System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+ updatedValue = newValue.toString();
+ }
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java
new file mode 100644
index 0000000000..8a461503ae
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java
@@ -0,0 +1,76 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ * Scenario 14 - Verify Change Notifications for any change in the registered key
+ * Created by sheetalm on 10/14/2016.
+ */
+public class NotificationOnPropValTest {
+
+ public final static String NAMESPACE = "NotificationOnPropVal";
+
+ public String updatedValue = null;
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testNotification() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+
+ System.out.println(config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ config.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new PropValListener());
+
+ Properties props = new Properties();
+ props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "20");
+ props.setProperty("_config.namespace",NAMESPACE);
+ props.setProperty("_config.mergeStrategy","override");
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ OutputStream out = new FileOutputStream( f );
+ props.store(out, "Override Config Property at Conventional Resource");
+ out.close();
+
+ Thread.sleep(35000);
+
+ System.out.println(config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ Assert.assertEquals("20" , updatedValue);
+ }
+
+ private class PropValListener implements ConfigurationChangeListener {
+ @Override
+ public void notify(String key, Object oldValue, Object newValue) {
+ System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+ updatedValue = newValue.toString();
+ }
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java
new file mode 100644
index 0000000000..e3e4e24f28
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java
@@ -0,0 +1,91 @@
+package org.openecomp.config.test;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.ConfigTestConstant;
+
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+
+/**
+ * Scenario 7
+ * Test to Validate notification on changes to the underlying source
+ * Resource here is GeneratorsList.json ehich is created in test itself
+ */
+
+public class ResourceChangeNotificationTest {
+
+ String newValue = null;
+
+ public final static String NAMESPACE = "Notification";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testNotification() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+ config.addConfigurationChangeListener(NAMESPACE,ConfigTestConstant.ARTIFACT_JSON_SCHEMA, new MyListener());
+ updateJsonInFile();
+ Thread.sleep(35000);
+ String newValue = config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_JSON_SCHEMA);
+
+ Assert.assertEquals("{name:\"updated SCM\"}",newValue);
+
+ Assert.assertEquals( "14",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH ));
+
+ Assert.assertEquals( "a-zA-Z", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+
+ String artifactConsumer = config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER );
+ Assert.assertEquals(artifactConsumer,config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER_APPC ));
+
+ List<String> expectedExtList = new ArrayList<String>();
+ expectedExtList.add("pdf"); expectedExtList.add("zip"); expectedExtList.add("xml");
+ List<String> extList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_EXT);
+ Assert.assertEquals(expectedExtList, extList);
+
+ List<String> expectedEncList = new ArrayList<String>();
+ expectedEncList.add("Base64"); expectedEncList.add("MD5");
+ List<String> encList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_ENC);
+ Assert.assertEquals(expectedEncList, encList);
+
+ List<String> expectedLocList = new ArrayList<String>();
+ expectedLocList.add("/opt/spool"); expectedLocList.add(System.getProperty("user.home")+"/asdc");
+ List<String> locList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_LOC);
+ Assert.assertEquals(expectedLocList, locList);
+
+ Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_XML_SCHEMA));
+ }
+
+ class MyListener implements ConfigurationChangeListener{
+ @Override
+ public void notify(String key, Object oldValue, Object newValue) {
+ System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+ }
+ }
+
+ private void updateJsonInFile() throws IOException{
+ String data = "{name:\"updated SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java
new file mode 100644
index 0000000000..a53f3c2d40
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java
@@ -0,0 +1,94 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ * Created by sheetalm on 10/19/2016.
+ * Scenario 24
+ * Unregister notification and verify listener
+ */
+public class UnregisterNotificationTest {
+ public final static String NAMESPACE = "UnregisterNotification";
+
+ public String updatedValue = null;
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testNotification() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+
+ System.out.println(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ PropertyListener propListener = new PropertyListener();
+ config.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH,propListener);
+
+ updateValue("20");
+
+ Thread.sleep(35000);
+
+ System.out.println(config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ //Verify listener is invoked and updated value to 20
+ Assert.assertEquals("20" , updatedValue);
+
+ config.removeConfigurationChangeListener(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH,propListener);
+
+ updateValue("22");
+
+ Thread.sleep(35000);
+
+ //When listener is unregistered updating value does not invoke any listener and value from listener should remain unchanged
+ Assert.assertEquals("20" , updatedValue);
+
+ //Verify value is updated even if listener is unregistered
+ Assert.assertEquals("22" , config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+ }
+
+ private void updateValue(String newValue) throws IOException {
+ Properties props = new Properties();
+ props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, newValue);
+ props.setProperty("_config.namespace",NAMESPACE);
+ props.setProperty("_config.mergeStrategy","override");
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ OutputStream out = new FileOutputStream( f );
+ props.store(out, "Override Config Property at Conventional Resource");
+ out.close();
+ }
+
+ private class PropertyListener implements ConfigurationChangeListener {
+ @Override
+ public void notify(String key, Object oldValue, Object newValue) {
+ System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+ updatedValue = newValue.toString();
+ }
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ }
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java
new file mode 100644
index 0000000000..7ae2e0a644
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java
@@ -0,0 +1,60 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/17/2016.
+ *
+ * Scenario 22
+ * Validate the default mode if the mode is not set
+ */
+public class ValidateDefaultModeTest {
+
+ public static final String NAMESPACE = "defaultmode";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithValidateDefaultMode(){
+ Configuration config = ConfigurationManager.lookup();
+
+ Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "14");
+
+ Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_MAXSIZE ), "1048");
+
+ List<String> expectedExtList = new ArrayList<String>();
+ expectedExtList.add("pdf");
+ expectedExtList.add("tgz");
+ expectedExtList.add("xls");
+ List<String> extList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_EXT);
+ Assert.assertEquals(expectedExtList, extList);
+
+ Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_NAME_MINLENGTH ), "6");
+
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ // ConfigurationUtils.executeDDLSQL("truncate dox.configuration");
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java
new file mode 100644
index 0000000000..03a6786275
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java
@@ -0,0 +1,80 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Scenario 13
+ * Validate node specific configuration
+ * Pre-requisite - set -Dnode.config.location=${"user.home"}/TestResources/ while running test
+ *
+ * Created by sheetalm on 10/14/2016.
+ */
+public class ValidateNodeConfigTest {
+
+ public final static String NAMESPACE = "ValidateNodeConfig";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ }
+
+ @Test
+ public void testValidateNodeConfig() throws IOException, InterruptedException {
+ Configuration config = ConfigurationManager.lookup();
+
+ Properties props = new Properties();
+ props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "56");
+ props.setProperty("_config.namespace","ValidateNodeConfig");
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ OutputStream out = new FileOutputStream( f );
+ props.store(out, "Node Config Property");
+ out.close();
+
+ System.out.println(System.getProperty("node.config.location"));
+
+ Thread.sleep(35000);
+
+ //Verify property from node specific configuration
+ Assert.assertEquals("56", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+ //Verify if property is not in node specific then fetch from namespace
+ //Assert.assertEquals("a-zA-Z",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER));
+
+ //Verify if property is not in node specific and namespace then fetch from global
+ Assert.assertEquals("1024", config.getAsString(NAMESPACE, "maxCachedBufferSize"));
+
+ //Deleting node configurations to test property is fetched from namespace configuration when node configuration is not present
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ System.out.println(isDeleted);
+ }
+
+ Thread.sleep(35000);
+
+ Assert.assertEquals(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH), "14");
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+ if(f.exists()) {
+ boolean isDeleted = f.delete();
+ }
+ }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java
new file mode 100644
index 0000000000..8af5ebf89d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java
@@ -0,0 +1,41 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 2
+ * Validate configuration with XML file format with mode
+ */
+public class XMLConfigTest {
+
+ public static final String NAMESPACE = "XMLConfig";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithXMLFileFormat(){
+ validateConfiguraton(NAMESPACE);
+ }
+
+
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java
new file mode 100644
index 0000000000..bc172b0eb7
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java
@@ -0,0 +1,41 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 4
+ * Validate configuration with YAML file format with mode
+ */
+public class YAMLConfigTest {
+
+ public static final String NAMESPACE = "YAMLConfig";
+
+ @Before
+ public void setUp() throws IOException {
+ String data = "{name:\"SCM\"}";
+ writeFile(data);
+ }
+
+ @Test
+ public void testConfigurationWithYAMLFileFormat(){
+ validateConfiguraton(NAMESPACE);
+ }
+
+
+
+ @After
+ public void tearDown() throws Exception {
+ TestUtil.cleanUp();
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java
new file mode 100644
index 0000000000..d639ccad42
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java
@@ -0,0 +1,23 @@
+package org.openecomp.config.util;
+
+public class ConfigTestConstant {
+
+ public static final String ARTIFACT_NAME_MAXLENGTH = "artifact.name.maxlength";
+ public static final String ARTIFACT_MAXSIZE = "artifact.maxsize";
+ public static final String ARTIFACT_EXT = "artifact.extension";
+ public static final String ARTIFACT_ENC = "artifact.supportedEncryption";
+ public static final String ARTIFACT_NAME_UPPER = "artifact.name.allowedChar";
+ public static final String ARTIFACT_NAME_LOWER = "artifact.name.allowedchar";
+ public static final String ARTIFACT_STATUS = "artifact.status";
+ public static final String ARTIFACT_LOC = "artifact.persistLocation";
+ public static final String ARTIFACT_JSON_SCHEMA = "artifact.jsonSchema";
+ public static final String ARTIFACT_XML_SCHEMA = "artifact.xmlSchema";
+ public static final String ARTIFACT_CONSUMER_APPC = "artifact.consumerAPPC";
+ public static final String ARTIFACT_CONSUMER = "artifact.consumer";
+ public static final String ARTIFACT_MANDATORY_NAME = "artifact.mandatory.name";
+ public static final String ARTIFACT_NAME_MINLENGTH = "artifact.name.minlength";
+ public static final String ARTIFACT_ENCODED = "artifact.encoded";
+
+ public static final String ONBOARDING_NAMESPACE = "onboarding";
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java
new file mode 100644
index 0000000000..a04f14cb84
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java
@@ -0,0 +1,95 @@
+package org.openecomp.config.util;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_ENCODED;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_MANDATORY_NAME;
+
+/**
+ * Created by sheetalm on 10/13/2016.
+ */
+public class TestUtil {
+
+ public final static String jsonSchemaLoc = System.getProperty("user.home")+"/TestResources/";
+ public static FileWriter fileWriter ;
+
+ public static void writeFile(String data) throws IOException {
+ File dir = new File(jsonSchemaLoc);
+ File file = null;
+ dir.mkdirs();
+ file = new File(jsonSchemaLoc+"/GeneratorsList.json");
+ file.createNewFile();
+ fileWriter = new FileWriter(file);
+ fileWriter.write(data);
+ fileWriter.close();
+ }
+
+ public static void cleanUp() throws Exception {
+ String data = "{name:\"SCM\"}";
+ TestUtil.writeFile(data);
+ //ConfigurationUtils.executeDdlSql("truncate dox.configuration");
+ try{
+ ConfigurationUtils.executeDdlSql("truncate dox.configuration_change");
+ }
+ catch(Exception e){
+ e.printStackTrace();
+ }
+
+ }
+
+ public static void validateConfiguraton(String nameSpace) {
+ Configuration config = ConfigurationManager.lookup();
+
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_MAXLENGTH ), "14");
+
+ // First value from list is picked from Merge properties
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_MAXSIZE ), "1048576");
+
+ List<String> expectedExtList = new ArrayList<String>();
+ expectedExtList.add("pdf");
+ expectedExtList.add("zip");
+ expectedExtList.add("xml");
+ expectedExtList.add("pdf");
+ expectedExtList.add("tgz");
+ expectedExtList.add("xls");
+ List<String> extList = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_EXT);
+ Assert.assertEquals(expectedExtList, extList);
+
+ List<String> expectedEncList = new ArrayList<String>();
+ expectedEncList.add("Base64");
+ expectedEncList.add("MD5");
+ List<String> encList = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_ENC);
+ Assert.assertEquals(expectedEncList, encList);
+
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_UPPER ), "a-zA-Z_0-9");
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_LOWER ), "a-zA-Z");
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_STATUS ), "deleted");
+
+ List<String> expectedLocList = new ArrayList<String>();
+ expectedLocList.add("/opt/spool");
+ expectedLocList.add(System.getProperty("user.home")+"/asdc");
+ List<String> locList = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_LOC);
+ Assert.assertEquals(expectedLocList, locList);
+
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_JSON_SCHEMA ), "@GeneratorList.json");
+
+ Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json",config.getAsString(nameSpace, ConfigTestConstant.ARTIFACT_XML_SCHEMA));
+
+ List<String> artifactConsumer = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_CONSUMER );
+ Assert.assertEquals(config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_CONSUMER_APPC ), artifactConsumer);
+
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_MINLENGTH ), "6");
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_MANDATORY_NAME ), "true");
+ Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_ENCODED ), "true");
+ }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties
new file mode 100644
index 0000000000..a50cabc151
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties
@@ -0,0 +1,12 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=OPENECOMP:CLI \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json
new file mode 100644
index 0000000000..5d98a327db
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json
@@ -0,0 +1,8 @@
+{
+ "artifact": {
+ "name": { "minlength": "6" },
+ "extension": "pdf,tgz,xls"
+ },
+ "_config":{"namespace": "OPENECOMP:CLI", "mergeStrategy": "union"}
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties
new file mode 100644
index 0000000000..4daad19dcc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml
new file mode 100644
index 0000000000..2f09871bd5
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ <_config>
+ <namespace>OPENECOMP:CLI</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+ </artifact>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml
new file mode 100644
index 0000000000..4333f3e83e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ namespace: "OPENECOMP:CLI"
+ mergeStrategy: "override" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties
new file mode 100644
index 0000000000..32da54ffbc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties
@@ -0,0 +1,12 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=OPENECOMP:CLIFallback \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json
new file mode 100644
index 0000000000..a1db251671
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json
@@ -0,0 +1,8 @@
+{
+ "artifact": {
+ "name": { "minlength": "6" },
+ "extension": "pdf,tgz,xls"
+ },
+ "_config":{"namespace": "OPENECOMP:CLIFallback", "mergeStrategy": "union"}
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties
new file mode 100644
index 0000000000..4daad19dcc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml
new file mode 100644
index 0000000000..4c46762cdd
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ <_config>
+ <namespace>OPENECOMP:CLIFallback</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+ </artifact>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml
new file mode 100644
index 0000000000..b0b195f354
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ namespace: "OPENECOMP:CLIFallback"
+ mergeStrategy: "override" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json
new file mode 100644
index 0000000000..c909fe8466
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json
@@ -0,0 +1,8 @@
+{
+
+ "artifact": {
+ "name": { "minlength": "6" },
+ "extension": "pdf,tgz,xls"
+ },
+ "_config": {"namespace": "DynamicConfiguration", "mergeStrategy": "union"}
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties
new file mode 100644
index 0000000000..c3825487a9
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=DynamicConfiguration \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml
new file mode 100644
index 0000000000..3f046e232b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ <_config>
+ <namespace>DynamicConfiguration</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+ </artifact>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml
new file mode 100644
index 0000000000..12ba1f093e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+encoded: true
+consumer: "appc,catalog"
+_config:
+ namespace: "DynamicConfiguration"
+ mergeStrategy: "override"
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties
new file mode 100644
index 0000000000..b7e985b90a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=FallbackToGlobalNS \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json
new file mode 100644
index 0000000000..6f3d68ab75
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json
@@ -0,0 +1,9 @@
+{
+
+ "artifact": {
+ "name": { "minlength": "6" },
+ "extension": "pdf,tgz,xls"
+ },
+ "_config":{"namespace": "FallbackToGlobalNS" , "mergeStrategy": "union"}
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties
new file mode 100644
index 0000000000..4daad19dcc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml
new file mode 100644
index 0000000000..9a881ab4a7
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>FallbackToGlobalNS</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml
new file mode 100644
index 0000000000..46f50b6087
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+ _config:
+ namespace: "FallbackToGlobalNS"
+ mergeStrategy: "override"
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json
new file mode 100644
index 0000000000..e59e65855c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json
@@ -0,0 +1,10 @@
+{
+
+ "artifact": {
+ "name": { "minlength": "6" },
+ "maxsize": "1048",
+ "extension": "pdf,tgz,xls"
+ },
+ "_config": { "mergeStrategy": "union","namespace":"GlobalAndNSConfig" }
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties
new file mode 100644
index 0000000000..1a86f68a65
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties
@@ -0,0 +1,10 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64, MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=GlobalAndNSConfig \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml
new file mode 100644
index 0000000000..d8292c167e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>GlobalAndNSConfig</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml
new file mode 100644
index 0000000000..bbbdde22a4
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml
@@ -0,0 +1,7 @@
+ artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+ _config:
+ mergeStrategy: "override" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json
new file mode 100644
index 0000000000..9c335724bc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json
@@ -0,0 +1,16 @@
+{
+
+ "artifact": {
+ "name": { "maxlength": "28" },
+ "maxsize": "1048576",
+ "extension": "gz,tgz",
+ "supportedencryption": "Base64",
+ "status": "deleted",
+ "mandatory": { "name": "true" }
+ },
+ "_config": {
+ "namespace": "JSONConfig",
+ "mergeStrategy": "merge"
+ }
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json
new file mode 100644
index 0000000000..c324fc777c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json
@@ -0,0 +1,11 @@
+{
+ "artifact": {
+ "name": { "allowedChar": "a-zA-Z_0-9" },
+ "encoded": "true",
+ "consumer": "appc,catalog"
+ },
+ "_config": {
+ "namespace": "JSONConfig",
+ "mergeStrategy": "override"
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json
new file mode 100644
index 0000000000..05a7e2d7ff
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json
@@ -0,0 +1,11 @@
+{
+ "artifact": {
+ "name": { "minlength": "6" },
+ "maxsize": "1048",
+ "extension": "pdf,tgz,xls"
+ },
+ "_config": {
+ "namespace": "JSONConfig",
+ "mergeStrategy": "union"
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json
new file mode 100644
index 0000000000..0538ba1717
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json
@@ -0,0 +1,30 @@
+{
+ "artifact": {
+ "name": {
+ "maxlength": "14",
+ "allowedChar": "a-zA-Z",
+ "allowedchar": "a-zA-Z"
+ },
+ "extension": [
+ "pdf",
+ "zip,xml"
+
+ ],
+ "supportedEncryption": [
+ "Base64",
+ "MD5"
+ ],
+ "status": [
+ "deleted",
+ "Deleted"
+ ],
+ "persistLocation": "/opt/spool,${sys:user.home}/asdc",
+ "jsonSchema": "@GeneratorList.json",
+ "xmlSchema": "@${env:path}/myschema.json",
+ "consumerAPPC": "${artifact.consumer}"
+
+ },
+ "_config": {
+ "namespace": "JSONConfig"
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties
new file mode 100644
index 0000000000..5082081102
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties
@@ -0,0 +1,9 @@
+artifact.name.maxlength=28
+artifact.maxsize=1048576
+artifact.extension=gz, tgz
+artifact.supportedencryption=Base64
+artifact.mandatory.name=true
+artifact.length=2
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=merge
+_config.loadOrder=2 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties
new file mode 100644
index 0000000000..45018269dd
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties
@@ -0,0 +1,7 @@
+artifact.name.allowedChar=a-zA-Z_0-9
+artifact.encoded=true
+artifact.consumer=appc, catalog
+artifact.size=75
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=override
+_config.loadOrder=1 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties
new file mode 100644
index 0000000000..cb5d5968f5
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties
@@ -0,0 +1,5 @@
+artifact.maxsize=1048
+artifact.extension=pdf,tgz, xls
+artifact.name.minlength=6
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=union \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties
new file mode 100644
index 0000000000..79d0815a39
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties
@@ -0,0 +1,9 @@
+artifact.name.maxlength=28
+artifact.maxsize=1048576
+artifact.extension=gz, tgz
+artifact.supportedencryption=Base64
+artifact.mandatory.name=true
+artifact.length=5
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=merge
+_config.loadOrder=1 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties
new file mode 100644
index 0000000000..164706dba7
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties
@@ -0,0 +1,7 @@
+artifact.name.allowedChar=a-zA-Z_0-9
+artifact.encoded=true
+artifact.consumer=appc, catalog
+artifact.size=56
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=override
+_config.loadOrder=2 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties
new file mode 100644
index 0000000000..ae1f445efd
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=LoadOrderConfiguration
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json
new file mode 100644
index 0000000000..7c6d552b82
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json
@@ -0,0 +1,8 @@
+{
+ "artifact": {
+ "name": { "minlength": "6" },
+ "maxsize": "1048",
+ "extension": "pdf,tgz,xls"
+ },
+ "_config": { "mergeStrategy": "union" , "namespace":"ModeAsConfigProp" }
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties
new file mode 100644
index 0000000000..a82e6b23fe
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties
@@ -0,0 +1,10 @@
+artifact.name.maxlength=14
+artifact.extension=pdf,zip,xml
+artifact.supportedEncryption=Base64,MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=ModeAsConfigProp \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml
new file mode 100644
index 0000000000..2d05d2724c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>ModeAsConfigProp</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml
new file mode 100644
index 0000000000..ef08bba6ce
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ mergeStrategy: "override"
+ namespace: "ModeAsConfigProp" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties
new file mode 100644
index 0000000000..435f98ab39
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties
@@ -0,0 +1,9 @@
+artifact.name.maxlength=30
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=NodeCLI \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties
new file mode 100644
index 0000000000..4076eefa58
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties
@@ -0,0 +1,15 @@
+artifact.name.maxlength=14
+artifact.consumer=APPC
+artifact.maxsize=1048
+artifact.extension=pdf,zip,xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool,${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=Notification \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zip b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zip
new file mode 100644
index 0000000000..42d14a64db
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zip
Binary files differ
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json
new file mode 100644
index 0000000000..0d6395af4f
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json
@@ -0,0 +1,12 @@
+{
+
+ "artifact": {
+ "name": { "minlength": "6" },
+ "extension": "pdf,tgz,xls"
+ },
+ "_config":{
+ "namespace": "NotificationForNodeConfig",
+ "mergestrategy": "union"
+ }
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties
new file mode 100644
index 0000000000..d2c41aa4b5
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=NotificationForNodeConfig
+
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml
new file mode 100644
index 0000000000..20768aa949
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>NotificationForNodeConfig</namespace>
+ <mergestrategy>merge</mergestrategy>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml
new file mode 100644
index 0000000000..ee85a0c68d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ namespace: "NotificationForNodeConfig"
+ mergestrategy: "override" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties
new file mode 100644
index 0000000000..279d407664
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=NotificationOnPropVal \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json
new file mode 100644
index 0000000000..fc7f2347aa
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json
@@ -0,0 +1,9 @@
+{
+ "artifact": {
+ "name": { "minlength": "6" },
+ "extension": "pdf,tgz,xls"
+ },
+
+ "_config": { "mergeStrategy": "union","namespace":"NotificationOnPropVal" }
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties
new file mode 100644
index 0000000000..4daad19dcc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml
new file mode 100644
index 0000000000..e3a24fbc32
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>NotificationOnPropVal</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+ </configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml
new file mode 100644
index 0000000000..7283df4ecb
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml
@@ -0,0 +1,9 @@
+
+ artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+ _config:
+ mergeStrategy: "override"
+ namespace: "NotificationOnPropVal" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json
new file mode 100644
index 0000000000..42c6be91b9
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json
@@ -0,0 +1,10 @@
+{
+
+ "artifact": {
+ "name": { "minlength": "6" },
+ "maxsize": "1048",
+ "extension": "pdf,tgz,xls"
+ },
+ "_config": { "mergeStrategy": "union","namespace":"SourceLocation" }
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties
new file mode 100644
index 0000000000..22c9840fad
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=SourceLocation \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml
new file mode 100644
index 0000000000..1162af576e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <maxsize>1048576</maxsize>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>SourceLocation</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml
new file mode 100644
index 0000000000..4e073ce7f9
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ mergeStrategy: "override"
+ namespace: "SourceLocation" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties
new file mode 100644
index 0000000000..40b4518945
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=UnregisterNotification \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json
new file mode 100644
index 0000000000..3e0464016d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json
@@ -0,0 +1,9 @@
+{
+ "artifact": {
+ "name": { "minlength": "6" },
+ "extension": "pdf,tgz,xls"
+ },
+
+ "_config": { "mergeStrategy": "union","namespace":"UnregisterNotification" }
+
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties
new file mode 100644
index 0000000000..4daad19dcc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml
new file mode 100644
index 0000000000..1153658161
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>UnregisterNotification</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+ </configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml
new file mode 100644
index 0000000000..1deb37ac7a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml
@@ -0,0 +1,9 @@
+
+ artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+ _config:
+ mergeStrategy: "override"
+ namespace: "UnregisterNotification" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json
new file mode 100644
index 0000000000..72833024c4
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json
@@ -0,0 +1,8 @@
+{
+ "artifact": {
+ "name": {
+ "minlength": "6"
+ },
+ "extension": "pdf,tgz,xls"
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties
new file mode 100644
index 0000000000..c857da38e9
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties
@@ -0,0 +1,2 @@
+artifact.name.maxlength=14
+artifact.maxsize=1048 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties
new file mode 100644
index 0000000000..a782e25835
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=ValidateNodeConfig \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties
new file mode 100644
index 0000000000..4daad19dcc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml
new file mode 100644
index 0000000000..320e53348d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <maxsize>1048576</maxsize>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+ <_config>
+ <namespace>XMLConfig</namespace>
+ <mergeStrategy>merge</mergeStrategy>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml
new file mode 100644
index 0000000000..508c920b83
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <allowedChar>a-zA-Z_0-9</allowedChar>
+ </name>
+ <encoded>true</encoded>
+ <consumer>appc,catalog</consumer>
+ </artifact>
+ <_config>
+ <namespace>XMLConfig</namespace>
+ <mergeStrategy>override</mergeStrategy>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml
new file mode 100644
index 0000000000..962bd342f3
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <minlength>6</minlength>
+ </name>
+ <maxsize>1048</maxsize>
+ <extension>pdf,tgz,xls</extension>
+ </artifact>
+ <_config>
+ <namespace>XMLConfig</namespace>
+ <mergeStrategy>union</mergeStrategy>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml
new file mode 100644
index 0000000000..2fff65b2e0
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>14</maxlength>
+ <allowedChar>a-zA-Z</allowedChar>
+ <allowedchar>a-zA-Z</allowedchar>
+ </name>
+ <!-- <maxsize></maxsize>-->
+ <extension>pdf</extension>
+ <extension>zip,xml</extension>
+
+ <supportedEncryption>Base64</supportedEncryption>
+ <supportedEncryption>MD5</supportedEncryption>
+ <status>deleted</status>
+ <status>Deleted</status>
+ <persistLocation>/opt/spool,${sys:user.home}/asdc</persistLocation>
+ <jsonSchema>@GeneratorList.json</jsonSchema>
+ <xmlSchema>@${env:path}/myschema.json</xmlSchema>
+ <consumerAPPC>${artifact.consumer}</consumerAPPC>
+ </artifact>
+ <_config>
+ <namespace>XMLConfig</namespace>
+ </_config>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml
new file mode 100644
index 0000000000..8ff08cdc43
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml
@@ -0,0 +1,12 @@
+ artifact:
+ name:
+ maxlength: 28
+ maxsize: 1048576
+ extension: "gz,tgz"
+ supportedencryption: Base64
+ status: deleted
+ mandatory:
+ name: true
+ _config:
+ namespace: YAMLConfig
+ mergeStrategy: merge \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml
new file mode 100644
index 0000000000..051d41d76b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml
@@ -0,0 +1,8 @@
+ artifact:
+ name:
+ allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+ _config:
+ namespace: YAMLConfig
+ mergeStrategy: override \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml
new file mode 100644
index 0000000000..8a9ab0e13e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml
@@ -0,0 +1,8 @@
+ artifact:
+ name:
+ minlength: 6
+ maxsize: 1048
+ extension: "pdf,tgz,xls"
+ _config:
+ namespace: YAMLConfig
+ mergeStrategy: union \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml
new file mode 100644
index 0000000000..706b22db5e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml
@@ -0,0 +1,27 @@
+artifact:
+ name:
+ maxlength: 14
+ allowedChar: "a-zA-Z"
+ allowedchar: "a-zA-Z"
+ #maxsize: ""
+ extension:
+ -
+ pdf
+ -
+ zip,xml
+ supportedEncryption:
+ -
+ Base64
+ -
+ MD5
+ status:
+ -
+ deleted
+ -
+ Deleted
+ persistLocation: "/opt/spool,${sys:user.home}/asdc"
+ jsonSchema: "@GeneratorList.json"
+ xmlSchema: "@${env:path}/myschema.json"
+ consumerAPPC: "${artifact.consumer}"
+_config:
+ namespace: YAMLConfig \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties
new file mode 100644
index 0000000000..934f0fcf37
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties
@@ -0,0 +1,22 @@
+driverClassName=com.github.adejanovski.cassandra.jdbc.CassandraDriver
+jdbcURL=jdbc:${dbname}://${dbhost}:${dbport}/${configdb}
+dbuser=
+dbpassword=
+config.Table=configuration
+config.monitor.Table=configuration_change
+configKey=key
+configValue=value
+configNameColumn=name
+configdb=dox
+dbhost=127.0.0.1
+dbport=9042
+dbname=cassandra
+createtablecql=create table if not exists ${configdb}.${config.Table} (name text\, key text\, value text\, PRIMARY KEY (name\, key)) with clustering order by (key asc)
+createmonitoringtablecql=create table if not exists ${configdb}.${config.monitor.Table} (name text\, changed_when bigint\, key text\, old_value text\, new_value text\, PRIMARY KEY (name\, changed_when)) with clustering order by (changed_when desc)
+insertconfigurationchangecql=insert into ${configdb}.${config.monitor.Table} (name\, changed_when\, key\, old_value\, new_value) values(?\, ?\, ?\, ?\, ?)
+fetchkeysql=select ${configKey} from ${config.Table} where ${configNameColumn}=?
+fetchlastchangecql=select changed_when from ${configdb}.${config.monitor.Table} where name=? limit 1
+fetchnamescql=select distinct name from ${configdb}.${config.Table}
+config.size.max=100
+config.refresh.interval=30000
+event.fetch.delay=5000 \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml
new file mode 100644
index 0000000000..3595efd87b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <artifact>
+ <name>
+ <maxlength>28</maxlength>
+ </name>
+ <maxsize>1048576</maxsize>
+ <extension>gz,tgz</extension>
+ <supportedencryption>Base64</supportedencryption>
+ <status>deleted</status>
+ <mandatory>
+ <name>true</name>
+ </mandatory>
+ </artifact>
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json
new file mode 100644
index 0000000000..dd6087b70c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json
@@ -0,0 +1,7 @@
+{
+ "artifact": {
+ "name": { "allowedChar": "a-zA-Z_0-9" },
+ "encoded": "true",
+ "consumer": "appc,catalog"
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml
new file mode 100644
index 0000000000..957b75d40a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml
@@ -0,0 +1,5 @@
+ artifact:
+ name:
+ minlength: 6
+ maxsize: 1048
+ extension: "pdf,tgz,xls" \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties
new file mode 100644
index 0000000000..7839839258
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties
new file mode 100644
index 0000000000..8a571ebc89
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties
@@ -0,0 +1,7 @@
+artifact.name.maxlength=28
+artifact.maxsize=1048576
+artifact.extension=gz, tgz
+artifact.supportedencryption=Base64
+artifact.mandatory.name=true
+_config.namespace=javaProperties
+_config.mergeStrategy=merge \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties
new file mode 100644
index 0000000000..b27c67a78d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties
@@ -0,0 +1,5 @@
+artifact.name.allowedChar=a-zA-Z_0-9
+artifact.encoded=true
+artifact.consumer=appc, catalog
+_config.namespace=javaProperties
+_config.mergeStrategy=override \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties
new file mode 100644
index 0000000000..615f2a2093
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties
@@ -0,0 +1,5 @@
+artifact.maxsize=1048
+artifact.extension=pdf,tgz, xls
+artifact.name.minlength=6
+_config.namespace=javaProperties
+_config.mergeStrategy=union \ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties
new file mode 100644
index 0000000000..d9051f6ec4
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=javaProperties
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties
new file mode 100644
index 0000000000..3bc773369b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties
@@ -0,0 +1,11 @@
+artifact.name.maxlength=20
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=OPENECOMP:tenancy
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties
new file mode 100644
index 0000000000..196bafe4e4
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties
@@ -0,0 +1,10 @@
+artifact.name.maxlength=30
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=Telefonica:tenancy
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties
new file mode 100644
index 0000000000..4c0c6ad897
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties
@@ -0,0 +1,11 @@
+artifact.name.maxlength=24
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=Vodafone:tenancy
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties
new file mode 100644
index 0000000000..8ed2485dc2
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties
@@ -0,0 +1,11 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=tenancy
diff --git a/common/openecomp-common-configuration-management/pom.xml b/common/openecomp-common-configuration-management/pom.xml
new file mode 100644
index 0000000000..47e846530a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/pom.xml
@@ -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>
+
+ <name>openecomp-common-configuration-management</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-common-configuration-management</artifactId>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <modules>
+ <module>openecomp-configuration-management-api</module>
+ <module>openecomp-configuration-management-core</module>
+ <module>openecomp-configuration-management-cli</module>
+ <module>openecomp-configuration-management-test</module>
+ </modules>
+
+<repositories>
+ <repository>
+ <id>java.net</id>
+ <url>http://repo1.maven.org/maven2</url>
+ </repository>
+</repositories>
+
+ <build>
+ <plugins>
+
+ <!-- ================================================== -->
+ <!-- Set the JDK compiler version. -->
+ <!-- ================================================== -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${mvn.compiler.version}</version>
+ <inherited>true</inherited>
+ <configuration>
+ <source>${java.source}</source>
+ <target>${java.target}</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/pom.xml b/common/openecomp-logging-lib/openecomp-logging-api/pom.xml
new file mode 100644
index 0000000000..96129557f4
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/pom.xml
@@ -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>
+
+ <name>openecomp-configuration-management-test</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-api</artifactId>
+
+ <parent>
+ <artifactId>openecomp-logging-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+</project>
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/BaseFactory.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/BaseFactory.java
new file mode 100644
index 0000000000..14943805cc
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/BaseFactory.java
@@ -0,0 +1,54 @@
+/*-
+ * ============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.logging.api;
+
+import java.util.Iterator;
+import java.util.ServiceLoader;
+
+/**
+ * Contains common functionality for factories used in the logging framework. <p>In order to use the
+ * factory, a particular (e.g. framework-specific) implementation of a service must be configured as
+ * described in <a href="http://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html">java.util.ServiceLoader</a>).</p>
+ *
+ * @see java.util.ServiceLoader
+ */
+public class BaseFactory {
+
+ protected static <T> T locateService(Class<T> clazz) throws Exception {
+
+ T service;
+ ServiceLoader<T> loader = ServiceLoader.load(clazz);
+ Iterator<T> iterator = loader.iterator();
+ if (iterator.hasNext()) {
+
+ service = iterator.next();
+ if (iterator.hasNext()) {
+ System.err.println(String.format("Warning! Configured more than one implementation of %s",
+ clazz.getName()));
+ }
+
+ return service;
+ }
+
+ throw new IllegalArgumentException(
+ (String.format("No implementations configured for %s", clazz.getName())));
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/Logger.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/Logger.java
new file mode 100644
index 0000000000..0fe3d8f230
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/Logger.java
@@ -0,0 +1,103 @@
+/*-
+ * ============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.logging.api;
+
+/**
+ * <p>This interface defines logging as specified by OPENECOMP logging requirements.</p> <p>Formatted
+ * messages must follow the <a href="http://www.slf4j.org/api/org/slf4j/helpers/MessageFormatter.html>SLF4J
+ * format</a>.</p>
+ */
+public interface Logger {
+
+ String getName();
+
+ boolean isMetricsEnabled();
+
+ void metrics(String msg);
+
+ void metrics(String msg, Object arg);
+
+ void metrics(String msg, Object arg1, Object arg2);
+
+ void metrics(String msg, Object... arguments);
+
+ void metrics(String msg, Throwable throwable);
+
+ boolean isAuditEnabled();
+
+ void audit(String msg);
+
+ void audit(String msg, Object arg);
+
+ void audit(String msg, Object arg1, Object arg2);
+
+ void audit(String msg, Object... arguments);
+
+ void audit(String msg, Throwable throwable);
+
+ boolean isDebugEnabled();
+
+ void debug(String msg);
+
+ void debug(String msg, Object arg);
+
+ void debug(String msg, Object arg1, Object arg2);
+
+ void debug(String msg, Object... arguments);
+
+ void debug(String msg, Throwable throwable);
+
+ boolean isInfoEnabled();
+
+ void info(String msg);
+
+ void info(String msg, Object arg);
+
+ void info(String msg, Object arg1, Object arg2);
+
+ void info(String msg, Object... arguments);
+
+ void info(String msg, Throwable throwable);
+
+ boolean isWarnEnabled();
+
+ void warn(String msg);
+
+ void warn(String msg, Object arg);
+
+ void warn(String msg, Object... arguments);
+
+ void warn(String msg, Object arg1, Object arg2);
+
+ void warn(String msg, Throwable throwable);
+
+ boolean isErrorEnabled();
+
+ void error(String msg);
+
+ void error(String msg, Object arg);
+
+ void error(String msg, Object arg1, Object arg2);
+
+ void error(String msg, Object... arguments);
+
+ void error(String msg, Throwable throwable);
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerCreationService.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerCreationService.java
new file mode 100644
index 0000000000..298f8f0267
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerCreationService.java
@@ -0,0 +1,11 @@
+package org.openecomp.core.logging.api;
+
+/**
+ * Implements a framework-specific logging, to be used by {@link LoggerFactory}.
+ */
+public interface LoggerCreationService {
+
+ Logger getLogger(String className);
+
+ Logger getLogger(Class<?> clazz);
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java
new file mode 100644
index 0000000000..e6f4aa3707
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java
@@ -0,0 +1,232 @@
+/*-
+ * ============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.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>
+ *
+ * @see BaseFactory
+ * @see LoggerCreationService
+ */
+@SuppressWarnings("ThrowableInstanceNeverThrown")
+public class LoggerFactory extends BaseFactory {
+
+ private static final LoggerCreationService SERVICE;
+
+ static {
+
+ LoggerCreationService service;
+
+ try {
+ service = locateService(LoggerCreationService.class);
+ } catch (Throwable throwable) {
+ new RuntimeException("Failed to instantiate logger factory", throwable).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();
+ }
+
+ SERVICE = service;
+ }
+
+ 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) {
+ }
+
+ @Override
+ public void metrics(String msg, Object arg) {
+ }
+
+ @Override
+ public void metrics(String msg, Object arg1, Object arg2) {
+ }
+
+ @Override
+ public void metrics(String msg, Object... arguments) {
+ }
+
+ @Override
+ public void metrics(String msg, Throwable throwable) {
+ }
+
+ @Override
+ public boolean isAuditEnabled() {
+ return false;
+ }
+
+ @Override
+ public void audit(String msg) {
+ }
+
+ @Override
+ public void audit(String msg, Object arg) {
+ }
+
+ @Override
+ public void audit(String msg, Object arg1, Object arg2) {
+ }
+
+ @Override
+ public void audit(String msg, Object... arguments) {
+ }
+
+ @Override
+ public void audit(String msg, Throwable throwable) {
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return false;
+ }
+
+ @Override
+ public void debug(String msg) {
+ }
+
+ @Override
+ public void debug(String msg, Object arg) {
+ }
+
+ @Override
+ public void debug(String msg, Object arg1, Object arg2) {
+ }
+
+ @Override
+ public void debug(String msg, Object... arguments) {
+ }
+
+ @Override
+ public void debug(String msg, Throwable throwable) {
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return false;
+ }
+
+ @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 throwable) {
+ }
+
+ @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 throwable) {
+ }
+
+ @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 throwable) {
+ }
+ };
+
+ @Override
+ public Logger getLogger(String className) {
+ return NO_OP_LOGGER;
+ }
+
+ @Override
+ public Logger getLogger(Class<?> clazz) {
+ return NO_OP_LOGGER;
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/annotations/Metrics.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/annotations/Metrics.java
new file mode 100644
index 0000000000..1588bcafc0
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/annotations/Metrics.java
@@ -0,0 +1,15 @@
+package org.openecomp.core.logging.api.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates a method whose execution time should be measured and logged as required for OPENECOMP
+ * metrics.
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Metrics {
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/ContextPropagationService.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/ContextPropagationService.java
new file mode 100644
index 0000000000..8e9c2dfa28
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/ContextPropagationService.java
@@ -0,0 +1,10 @@
+package org.openecomp.core.logging.api.context;
+
+/**
+ * Should be used to implement a framework-specific mechanism of propagation of a diagnostic context
+ * to child threads.
+ */
+public interface ContextPropagationService {
+
+ Runnable create(Runnable task);
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java
new file mode 100644
index 0000000000..b358a77573
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java
@@ -0,0 +1,73 @@
+/*-
+ * ============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.logging.api.context;
+
+import org.openecomp.core.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>The service used by this factory must implement {@link ContextPropagationService}.</p>
+ *
+ * @see ContextPropagationService
+ */
+@SuppressWarnings("ThrowableInstanceNeverThrown")
+public class TaskFactory extends BaseFactory {
+
+ private static final ContextPropagationService SERVICE;
+ private static final RuntimeException ERROR;
+
+ static {
+
+ ContextPropagationService service = null;
+ RuntimeException error = null;
+
+ try {
+ service = locateService(ContextPropagationService.class);
+ } catch (Throwable throwable) {
+ error = new RuntimeException("Failed to instantiate task factory", throwable);
+ }
+
+ SERVICE = service;
+ ERROR = 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) {
+
+ if (SERVICE == null) {
+ throw ERROR;
+ }
+
+ return SERVICE.create(task);
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/LoggerFactoryTest.java b/common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/LoggerFactoryTest.java
new file mode 100644
index 0000000000..7158db7ab4
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/LoggerFactoryTest.java
@@ -0,0 +1,74 @@
+/*-
+ * ============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.logging.api;
+
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Field;
+import java.util.ServiceLoader;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+
+/**
+ * @author evitaliy
+ * @since 14/09/2016.
+ */
+public class LoggerFactoryTest {
+
+ @Test
+ public void testNoOpLoggerService() throws Exception {
+
+ assertFalse(ServiceLoader.load(LoggerCreationService.class).iterator().hasNext());
+
+ LoggerFactory.getLogger(LoggerFactoryTest.class);
+ Field factory = LoggerFactory.class.getDeclaredField("SERVICE");
+ factory.setAccessible(true);
+ Object impl = factory.get(null);
+ assertEquals("org.openecomp.core.logging.api.LoggerFactory$NoOpLoggerCreationService",
+ impl.getClass().getName());
+ }
+
+ @Test
+ public void testNoOpLoggerByClass() throws Exception {
+ Logger logger = LoggerFactory.getLogger(LoggerFactoryTest.class);
+ verifyLogger(logger);
+ }
+
+ @Test
+ public void testNoOpLoggerByName() throws Exception {
+ Logger logger = LoggerFactory.getLogger(LoggerFactoryTest.class.getName());
+ verifyLogger(logger);
+ }
+
+ private void verifyLogger(Logger logger) {
+ assertNotNull(logger);
+
+ // make sure no exceptions are thrown
+ logger.error("");
+ logger.warn("");
+ logger.info("");
+ logger.debug("");
+ logger.audit("");
+ logger.metrics("");
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/context/TaskFactoryTest.java b/common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/context/TaskFactoryTest.java
new file mode 100644
index 0000000000..111a30de1a
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/test/java/org/openecomp/core/logging/api/context/TaskFactoryTest.java
@@ -0,0 +1,30 @@
+package org.openecomp.core.logging.api.context;
+
+import org.testng.annotations.Test;
+
+import java.util.ServiceLoader;
+
+import static org.testng.Assert.*;
+
+/**
+ * @author evitaliy
+ * @since 14/09/2016.
+ */
+public class TaskFactoryTest {
+
+ @Test(expectedExceptions = RuntimeException.class)
+ public void testNoImplementation() throws Exception {
+
+ assertFalse(ServiceLoader.load(ContextPropagationService.class).iterator().hasNext());
+
+ try {
+ TaskFactory.create(() -> {
+ });
+ } catch (RuntimeException e) {
+ Throwable cause = e.getCause();
+ assertNotNull(cause);
+ assertTrue(cause.getMessage().contains(ContextPropagationService.class.getName()));
+ throw e;
+ }
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/README b/common/openecomp-logging-lib/openecomp-logging-core/README
new file mode 100644
index 0000000000..779c5d99df
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/README
@@ -0,0 +1,29 @@
+The purpose of this module is to make a Web application meet the OPENECOMP logging requirements described in
+OPENECOMP platform application logging guidelines.
+
+The default out-of-the box solution is based on SLF4J.
+
+It introduces three major areas of functionality as follows:
+
+1. Routing of logging messages for the Logback library, so that all logging events are written to separate files
+according to their type.
+
+2. An AOP aspect for measuring execution time and logging it, so that the application code is not contaminated with
+this type of logging.
+
+3. Collecting and populating the context of a Web API request and propagating it to every logging event.
+
+TODO:
+
+1. MetricsAspect
+ - Configurable metrics message
+ - Make sure there are no exceptions but applicative ones
+
+2. EventTypeDiscriminator
+ - Make event types configurable to make the names of log files easily customizable
+
+3. DispatchingAppender
+ - Read appenders from configuration, so that there is no need in EELF loggers
+ - Simpler use of discriminator or an entirely different mechanism
+ - Better appender name pattern, or mapping between a discriminating value and an appender name
+ - Discard the appenders cache on configuration changes
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/pom.xml b/common/openecomp-logging-lib/openecomp-logging-core/pom.xml
new file mode 100644
index 0000000000..636595bc45
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/pom.xml
@@ -0,0 +1,72 @@
+<?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>
+
+ <name>openecomp-configuration-management-test</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-core</artifactId>
+
+ <parent>
+ <artifactId>openecomp-logging-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <properties>
+ <logback.version>1.1.7</logback.version>
+ <powermock.version>1.6.5</powermock.version>
+ <easymock.version>3.4</easymock.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-api</artifactId>
+ <version>${project.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>
+
+ <!-- for testing -->
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>${easymock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-easymock</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-core</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-testng</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Markers.java b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Markers.java
new file mode 100644
index 0000000000..dc2ae367b3
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Markers.java
@@ -0,0 +1,21 @@
+package org.openecomp.core.logging;
+
+import org.slf4j.Marker;
+import org.slf4j.MarkerFactory;
+
+/**
+ * <p>The list of markers that can be used for special logging such as metrics, audit, etc.</p>
+ * <p>Although markers can be easily instantiated whenever needed, having constants for them helps
+ * eliminate mistakes - misspelling, using a marker that is not handled, etc.</p> <p>Usage:</p>
+ * <pre>
+ * Logger log = LogFactory.getLogger(this.getClass());
+ * log.info(Markers.AUDIT, "User '{}' logged out", user);
+ * </pre>
+ *
+ * @see org.slf4j.Marker
+ */
+public class Markers {
+
+ public static final Marker AUDIT = MarkerFactory.getMarker("AUDIT");
+ public static final Marker METRICS = MarkerFactory.getMarker("METRICS");
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Slf4JLoggerCreationService.java b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Slf4JLoggerCreationService.java
new file mode 100644
index 0000000000..3238e75f8e
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/Slf4JLoggerCreationService.java
@@ -0,0 +1,236 @@
+/*-
+ * ============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.logging;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerCreationService;
+import org.slf4j.LoggerFactory;
+
+public class Slf4JLoggerCreationService implements LoggerCreationService {
+
+ @Override
+ public Logger getLogger(String className) {
+ return new Slf4JWrapper(className);
+ }
+
+ @Override
+ public Logger getLogger(Class<?> clazz) {
+ return new Slf4JWrapper(clazz);
+ }
+
+ private class Slf4JWrapper implements Logger {
+
+ private final org.slf4j.Logger logger;
+
+ public Slf4JWrapper(Class<?> clazz) {
+ logger = LoggerFactory.getLogger(clazz);
+ }
+
+ public Slf4JWrapper(String className) {
+ logger = LoggerFactory.getLogger(className);
+ }
+
+ @Override
+ public String getName() {
+ return logger.getName();
+ }
+
+ @Override
+ public boolean isMetricsEnabled() {
+ return logger.isInfoEnabled(Markers.METRICS);
+ }
+
+ @Override
+ public void metrics(String msg) {
+ logger.info(Markers.METRICS, msg);
+ }
+
+ @Override
+ public void metrics(String msg, Object arg) {
+ logger.info(Markers.METRICS, msg, arg);
+ }
+
+ @Override
+ public void metrics(String msg, Object arg1, Object arg2) {
+ logger.info(Markers.METRICS, msg, arg1, arg2);
+ }
+
+ @Override
+ public void metrics(String msg, Object... arguments) {
+ logger.info(Markers.METRICS, msg, arguments);
+ }
+
+ @Override
+ public void metrics(String msg, Throwable throwable) {
+ logger.info(Markers.METRICS, msg, throwable);
+ }
+
+ @Override
+ public boolean isAuditEnabled() {
+ return logger.isInfoEnabled(Markers.AUDIT);
+ }
+
+ @Override
+ public void audit(String msg) {
+ logger.info(Markers.AUDIT, msg);
+ }
+
+ @Override
+ public void audit(String msg, Object arg) {
+ logger.info(Markers.AUDIT, msg, arg);
+ }
+
+ @Override
+ public void audit(String msg, Object arg1, Object arg2) {
+ logger.info(Markers.AUDIT, msg, arg1, arg2);
+ }
+
+ @Override
+ public void audit(String msg, Object... arguments) {
+ logger.info(Markers.AUDIT, msg, arguments);
+ }
+
+ @Override
+ public void audit(String msg, Throwable throwable) {
+ logger.info(Markers.AUDIT, msg, throwable);
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return logger.isDebugEnabled();
+ }
+
+ @Override
+ public void debug(String msg) {
+ logger.debug(msg);
+ }
+
+ @Override
+ public void debug(String format, Object arg) {
+ logger.debug(format, arg);
+ }
+
+ @Override
+ public void debug(String format, Object arg1, Object arg2) {
+ logger.debug(format, arg1, arg2);
+ }
+
+ @Override
+ public void debug(String format, Object... arguments) {
+ logger.debug(format, arguments);
+ }
+
+ @Override
+ public void debug(String msg, Throwable throwable) {
+ logger.debug(msg, throwable);
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return logger.isInfoEnabled();
+ }
+
+ @Override
+ public void info(String msg) {
+ logger.info(msg);
+ }
+
+ @Override
+ public void info(String format, Object arg) {
+ logger.info(format, arg);
+ }
+
+ @Override
+ public void info(String format, Object arg1, Object arg2) {
+ logger.info(format, arg1, arg2);
+ }
+
+ @Override
+ public void info(String format, Object... arguments) {
+ logger.info(format, arguments);
+ }
+
+ @Override
+ public void info(String msg, Throwable throwable) {
+ logger.info(msg, throwable);
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return logger.isWarnEnabled();
+ }
+
+ @Override
+ public void warn(String msg) {
+ logger.warn(msg);
+ }
+
+ @Override
+ public void warn(String format, Object arg) {
+ logger.warn(format, arg);
+ }
+
+ @Override
+ public void warn(String format, Object... arguments) {
+ logger.warn(format, arguments);
+ }
+
+ @Override
+ public void warn(String format, Object arg1, Object arg2) {
+ logger.warn(format, arg1, arg2);
+ }
+
+ @Override
+ public void warn(String msg, Throwable throwable) {
+ logger.warn(msg, throwable);
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ return logger.isErrorEnabled();
+ }
+
+ @Override
+ public void error(String msg) {
+ logger.error(msg);
+ }
+
+ @Override
+ public void error(String format, Object arg) {
+ logger.error(format, arg);
+ }
+
+ @Override
+ public void error(String format, Object arg1, Object arg2) {
+ logger.error(format, arg1, arg2);
+ }
+
+ @Override
+ public void error(String format, Object... arguments) {
+ logger.error(format, arguments);
+ }
+
+ @Override
+ public void error(String msg, Throwable throwable) {
+ logger.error(msg, throwable);
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/aspects/MetricsAspect.java b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/aspects/MetricsAspect.java
new file mode 100644
index 0000000000..9e8c7f0aa8
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/aspects/MetricsAspect.java
@@ -0,0 +1,72 @@
+/*-
+ * ============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.logging.aspects;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.core.logging.api.annotations.Metrics;
+
+/**
+ * <p>Wraps around any method annotated with {@link Metrics} to measure and log its execution time
+ * in milliseconds.</p> <p>In order for the aspect to be used, AspectJ annotation processing must be
+ * tuned on and this particular aspect enabled. Conversely, it can be disabled completely if the
+ * application does not need to log metrics.</p> <p>See, for example, <a
+ * href="http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html"> Aspect
+ * Oriented Programming with Spring</a>.</p>
+ *
+ * @see Metrics
+ */
+@Aspect
+public class MetricsAspect {
+
+ private static final String MESSAGE_TEMPLATE = "'{}' took {} milliseconds";
+
+ /**
+ * Log execution time object.
+ *
+ * @param pjp the pjp
+ * @return the object
+ * @throws Throwable the throwable
+ */
+ @Around("@annotation(org.openecomp.core.logging.api.annotations.Metrics)")
+ public Object logExecutionTime(ProceedingJoinPoint pjp) throws Throwable {
+
+ final Logger logger = LoggerFactory.getLogger(pjp.getSignature().getDeclaringTypeName());
+ // measure and log only if the logger for this class is enabled
+ if (logger.isMetricsEnabled()) {
+
+ final String method = pjp.getSignature().getName();
+ final long start = System.currentTimeMillis();
+
+ try {
+ return pjp.proceed();
+ } finally {
+ logger.metrics(MESSAGE_TEMPLATE, method, System.currentTimeMillis() - start);
+ }
+
+ } else {
+ return pjp.proceed();
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/context/MdcPropagationService.java b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/context/MdcPropagationService.java
new file mode 100644
index 0000000000..94ad1b9717
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/context/MdcPropagationService.java
@@ -0,0 +1,71 @@
+/*-
+ * ============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.logging.context;
+
+import org.openecomp.core.logging.api.context.ContextPropagationService;
+import org.slf4j.MDC;
+
+import java.util.Map;
+
+/**
+ * Propagates the <a href="http://www.slf4j.org/manual.html#mdc">SLF4J Mapped Diagnostic Context
+ * (MDC)</a> of a thread onto a runnable created by that thread, so that the context is available
+ * when the runnable is executed in a new thread.
+ */
+public class MdcPropagationService implements ContextPropagationService {
+
+ public Runnable create(Runnable task) {
+ return new MdcCopyingWrapper(task);
+ }
+
+ private static class MdcCopyingWrapper implements Runnable {
+
+ private final Runnable task;
+ private final Map<String, String> context;
+
+ private MdcCopyingWrapper(Runnable task) {
+ this.task = task;
+ this.context = MDC.getCopyOfContextMap();
+ }
+
+ private static void replaceMdc(Map<String, String> context) {
+
+ if (context == null) {
+ MDC.clear();
+ } else {
+ MDC.setContextMap(context);
+ }
+ }
+
+ @Override
+ public void run() {
+
+ Map<String, String> oldContext = MDC.getCopyOfContextMap();
+ replaceMdc(this.context);
+
+ try {
+ task.run();
+ } finally {
+ replaceMdc(oldContext);
+ }
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/DispatchingAppender.java b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/DispatchingAppender.java
new file mode 100644
index 0000000000..6d5642e374
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/DispatchingAppender.java
@@ -0,0 +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.core.logging.logback;
+
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.sift.MDCBasedDiscriminator;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.Appender;
+import ch.qos.logback.core.AppenderBase;
+import ch.qos.logback.core.joran.spi.DefaultClass;
+import ch.qos.logback.core.sift.Discriminator;
+import org.slf4j.LoggerFactory;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * <p>Allows to use EELF logging configuration almost as is, by using a custom routing function, but
+ * pre-configured appenders attached to the standard EELF loggers.</p> <p>Changes that must be made
+ * in <i>logback.xml</i> supplied with EELF:</p>
+ * <pre>
+ * &lt;appender name="DISPATCHER" class="DispatchingAppender"&gt;
+ * &lt;discriminator class="EventTypeDiscriminator"/&gt;
+ * &lt;appenderNamePattern&gt;asyncEELF%s&lt;/appenderNamePattern&gt;
+ * &lt;/appender&gt;
+ * &lt;root level="INFO" additivity="false"&gt;
+ * &lt;appender-ref ref="DISPATCHER" /&gt;
+ * &lt;/root&gt;
+ * </pre>
+ */
+public class DispatchingAppender extends AppenderBase<ILoggingEvent> {
+
+ // "magic" appender to indicate a missing appender
+ private static final Appender<ILoggingEvent> NO_APPENDER = new DispatchingAppender();
+
+ private Map<String, Appender<ILoggingEvent>> appenders = new ConcurrentHashMap<>();
+
+ private Discriminator<ILoggingEvent> discriminator;
+ private String appenderNamePattern;
+
+ public Discriminator<ILoggingEvent> getDiscriminator() {
+ return this.discriminator;
+ }
+
+ @DefaultClass(MDCBasedDiscriminator.class)
+ public void setDiscriminator(Discriminator<ILoggingEvent> discriminator) {
+ this.discriminator = discriminator;
+ }
+
+ public String getAppenderNamePattern() {
+ return this.appenderNamePattern;
+ }
+
+ public void setAppenderNamePattern(String pattern) {
+ this.appenderNamePattern = pattern;
+ }
+
+ @Override
+ protected void append(ILoggingEvent event) {
+
+ if (this.isStarted()) {
+
+ String discriminatingValue = this.discriminator.getDiscriminatingValue(event);
+ String appenderName = String.format(this.appenderNamePattern, discriminatingValue);
+ Appender<ILoggingEvent> appender = this.lookupAppender(appenderName);
+ if (appender == NO_APPENDER) {
+ this.addError(String.format("Appender %s does not exist", appenderName));
+ } else {
+ appender.doAppend(event);
+ }
+ }
+ }
+
+ private Appender<ILoggingEvent> lookupAppender(String key) {
+
+ Appender<ILoggingEvent> appender = appenders.get(key);
+ if (appender != null) {
+ return appender;
+ }
+
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ for (Logger log : context.getLoggerList()) {
+
+ Iterator<Appender<ILoggingEvent>> iterator = log.iteratorForAppenders();
+ while (iterator.hasNext()) {
+
+ Appender<ILoggingEvent> element = iterator.next();
+ if (key.equals(element.getName())) {
+ this.appenders.putIfAbsent(key, element);
+ return element;
+ }
+ }
+ }
+
+ // to avoid consecutive lookups if the required appender does not exist
+ this.appenders.putIfAbsent(key, NO_APPENDER);
+ return NO_APPENDER;
+ }
+
+ @Override
+ public void start() {
+
+ int errors = 0;
+ if (this.discriminator == null) {
+ this.addError("Missing discriminator. Aborting");
+ }
+
+ if (!this.discriminator.isStarted()) {
+ this.addError("Discriminator has not started successfully. Aborting");
+ ++errors;
+ }
+
+ if (this.appenderNamePattern == null) {
+ this.addError("Missing name pattern. Aborting");
+ ++errors;
+ }
+
+ if (errors == 0) {
+ super.start();
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/EventTypeDiscriminator.java b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/EventTypeDiscriminator.java
new file mode 100644
index 0000000000..107f6728d7
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/logback/EventTypeDiscriminator.java
@@ -0,0 +1,121 @@
+/*-
+ * ============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.logging.logback;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.sift.AbstractDiscriminator;
+import org.openecomp.core.logging.Markers;
+import org.slf4j.Marker;
+
+/**
+ * Can be used with {@link ch.qos.logback.classic.sift.SiftingAppender} to route events of different
+ * types to separate log files. For example,
+ * <pre>
+ * &lt;configuration&gt;
+ * &lt;appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"&gt;
+ * &lt;discriminator class="EventTypeDiscriminator"/&gt;
+ * &lt;sift&gt;
+ * &lt;appender name="{EventType}"
+ * class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;
+ * &lt;file&gt;${logDirectory}/${eventType}.log&lt;/file&gt;
+ * &lt;rollingPolicy class="ch.
+ * qos.logback.core.rolling.FixedWindowRollingPolicy"&gt;
+ * &lt;fileNamePattern&gt;
+ * ${logDirectory}/${eventType}.
+ * %i.log.zip&lt;/fileNamePattern&gt;
+ * &lt;minIndex&gt;1&lt;/minIndex&gt;
+ * &lt;maxIndex&gt;9&lt;/maxIndex&gt;
+ * &lt;/rollingPolicy&gt;
+ * &lt;triggeringPolicy
+ * class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"&gt;
+ * &lt;maxFileSize&gt;5MB&lt;/maxFileSize&gt;
+ * &lt;/triggeringPolicy&gt;
+ * &lt;encoder&gt;
+ * &lt;pattern&gt;${defaultPattern}&lt;/pattern&gt;
+ * &lt;/encoder&gt;
+ * &lt;/appender&gt;
+ * &lt;/sift&gt;
+ * &lt;/appender&gt;
+ * &lt;root level="INFO"&gt;
+ * &lt;appender-ref ref="SIFT" /&gt;
+ * &lt;/root&gt;
+ * &lt;/configuration&gt;
+ * </pre>
+ */
+public class EventTypeDiscriminator extends AbstractDiscriminator<ILoggingEvent> {
+
+ private static final String KEY = "eventType";
+
+ private static final String AUDIT = "Audit";
+ private static final String METRICS = "Metrics";
+ private static final String ERROR = "Error";
+ private static final String DEBUG = "Debug";
+ private static final String DEFAULT = DEBUG;
+
+ private static final int MIN_ERROR_LEVEL = Level.WARN_INT;
+ private static final int MAX_ERROR_LEVEL = Level.ERROR_INT;
+ private static final int DEFAULT_LEVEL = Level.DEBUG_INT;
+
+ @Override
+ public String getDiscriminatingValue(ILoggingEvent event) {
+
+ Level level = event.getLevel();
+ final int levelInt = level == null ? DEFAULT_LEVEL : level.toInt();
+ if ((levelInt > MIN_ERROR_LEVEL - 1) && (levelInt < MAX_ERROR_LEVEL + 1)) {
+ return ERROR;
+ }
+
+ if (levelInt == Level.DEBUG_INT) {
+ return DEBUG;
+ }
+
+ /*
+ * After DEBUG, ERROR, and WARNING have been filtered out,
+ * only TRACE and INFO are left. TRACE is less than DEBUG
+ * and therefore cannot be used. So, INFO should be used for
+ * custom routing like AUDIT and METRICS
+ */
+ if (levelInt == Level.INFO_INT) {
+
+ final Marker marker = event.getMarker();
+ if (marker != null) {
+
+ if (marker.contains(Markers.AUDIT)) {
+ return AUDIT;
+ }
+
+ if (marker.contains(Markers.METRICS)) {
+ return METRICS;
+ }
+ }
+
+ return ERROR;
+ }
+
+ return DEFAULT;
+ }
+
+ @Override
+ public String getKey() {
+ return KEY;
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/servlet/LoggingFilter.java b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/servlet/LoggingFilter.java
new file mode 100644
index 0000000000..53923d7784
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/java/org/openecomp/core/logging/servlet/LoggingFilter.java
@@ -0,0 +1,135 @@
+/*-
+ * ============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.logging.servlet;
+
+import org.slf4j.MDC;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+/**
+ * <p>Pushes information required by EELF onto MDC (Mapped Diagnostic Context).</p> <p>This is
+ * servlet filter that should be configured in <i>web.xml</i> to be used. Example:</p>
+ * <pre>
+ * &lt;filter&gt;
+ * &lt;filter-name&gt;LoggingServletFilter&lt;/filter-name&gt;
+ * &lt;filter-class&gt;LoggingFilter&lt;/filter-class&gt;
+ * &lt;/filter&gt;
+ * &lt;filter-mapping&gt;
+ * &lt;filter-name&gt;LoggingServletFilter&lt;/filter-name&gt;
+ * &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
+ * &lt;/filter-mapping&gt;
+ * </pre>
+ */
+public class LoggingFilter implements Filter {
+
+ // should be cashed to avoid low-level call, but with a timeout to account for IP or FQDN changes
+ private static final HostAddressCache HOST_ADDRESS = new HostAddressCache();
+ private static final String UNKNOWN = "UNKNOWN";
+
+ public void destroy() {
+ }
+
+ /**
+ * Do Filter.
+ *
+ * @param request the request
+ */
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+
+ try {
+
+ MDC.clear();
+
+ MDC.put("RequestId", UUID.randomUUID().toString());
+ MDC.put("ServiceInstanceId", "N/A"); // not applicable
+ MDC.put("ServiceName", "SDC");
+ MDC.put("InstanceUUID", "N/A");
+
+ // For some reason chooses IPv4 or IPv6 in a random way
+ MDC.put("RemoteHost", request.getRemoteHost());
+
+ InetAddress host = HOST_ADDRESS.get();
+
+ String ipAddress;
+ String hostName;
+ if (host == null) {
+ ipAddress = UNKNOWN;
+ hostName = UNKNOWN;
+ } else {
+ ipAddress = host.getHostAddress();
+ hostName = host.getHostName();
+ }
+
+ MDC.put("ServerIPAddress", ipAddress);
+ MDC.put("ServerFQDN", hostName);
+
+ // TODO: Clarify what these stand for
+ // MDC.put("AlertSeverity", );
+ // MDC.put("Timer", );
+
+ chain.doFilter(request, response);
+
+ } finally {
+ MDC.clear();
+ }
+ }
+
+ public void init(FilterConfig config) throws ServletException {
+ }
+
+ private static class HostAddressCache {
+
+ private static final long REFRESH_TIME = 1000L;
+
+ private AtomicLong lastUpdated = new AtomicLong(0L);
+ private InetAddress hostAddress;
+
+ public InetAddress get() {
+
+ long current = System.currentTimeMillis();
+ if (current - lastUpdated.get() > REFRESH_TIME) {
+
+ synchronized (this) {
+
+ try {
+ lastUpdated.set(current); // set now to register the attempt even if failed
+ hostAddress = InetAddress.getLocalHost();
+ } catch (UnknownHostException unknownHostException) {
+ hostAddress = null;
+ }
+ }
+ }
+
+ return hostAddress;
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.LoggerCreationService b/common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.LoggerCreationService
new file mode 100644
index 0000000000..ecbf5e8fbe
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.LoggerCreationService
@@ -0,0 +1 @@
+org.openecomp.core.logging.Slf4JLoggerCreationService \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.context.ContextPropagationService b/common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.context.ContextPropagationService
new file mode 100644
index 0000000000..91297681ec
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/main/resources/META-INF/services/org.openecomp.core.logging.api.context.ContextPropagationService
@@ -0,0 +1 @@
+org.openecomp.core.logging.context.MdcPropagationService \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/LoggerFactoryTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/LoggerFactoryTest.java
new file mode 100644
index 0000000000..6fcc134957
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/LoggerFactoryTest.java
@@ -0,0 +1,25 @@
+package org.openecomp.core.logging;
+
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Field;
+
+import static org.testng.Assert.assertEquals;
+
+/**
+ * @author evitaliy
+ * @since 12/09/2016.
+ */
+public class LoggerFactoryTest {
+
+ @Test
+ public void testCreate() throws Exception {
+ // test that the service loader loads the right implementation
+ LoggerFactory.getLogger(LoggerFactoryTest.class);
+ Field factory = LoggerFactory.class.getDeclaredField("SERVICE");
+ factory.setAccessible(true);
+ Object implementation = factory.get(null);
+ assertEquals(Slf4JLoggerCreationService.class, implementation.getClass());
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/RoutingTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/RoutingTest.java
new file mode 100644
index 0000000000..c0a418a31e
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/RoutingTest.java
@@ -0,0 +1,155 @@
+/*-
+ * ============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.logging;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.sift.SiftingAppender;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.AppenderBase;
+import org.openecomp.core.logging.logback.EventTypeDiscriminator;
+import org.slf4j.LoggerFactory;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Predicate;
+
+/**
+ * TODO: Add more negative tests
+ *
+ * @author EVITALIY
+ * @since 17/08/2016.
+ */
+public class RoutingTest {
+
+ private static final String ERROR = "Error";
+ private static final String DEBUG = "Debug";
+ private static final String AUDIT = "Audit";
+ private static final String METRICS = "Metrics";
+
+ private Logger logger;
+ private Map<String, TestAppender> result = new ConcurrentHashMap<>();
+
+ @BeforeClass
+ public void setUp() {
+
+ SiftingAppender appender = new SiftingAppender();
+
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ discriminator.start();
+
+ appender.setDiscriminator(discriminator);
+ appender.setAppenderFactory((context, discriminatingValue) ->
+ result.computeIfAbsent(discriminatingValue, f -> {
+ TestAppender tmp = new TestAppender();
+ tmp.start();
+ return tmp;
+ }));
+
+ appender.start();
+
+ logger = (Logger) LoggerFactory.getLogger(RoutingTest.class.getName());
+ // prevent from writing into appenders attached via parent loggers
+ logger.setAdditive(false);
+ logger.addAppender(appender);
+ logger.setLevel(Level.DEBUG);
+ }
+
+ @Test
+ public void testWarning() {
+ String msg = "This is a test warning";
+ logger.warn(msg);
+ TestAppender appender = result.get(ERROR);
+ Assert.assertTrue(appender.contains((event) ->
+ Level.WARN.equals(event.getLevel()) && msg.equals(event.getFormattedMessage())));
+ }
+
+ @Test
+ public void testError() {
+ String msg = "This is a test error";
+ logger.error(msg);
+ TestAppender appender = result.get(ERROR);
+ Assert.assertTrue(appender.contains((event) ->
+ Level.ERROR.equals(event.getLevel()) && msg.equals(event.getFormattedMessage())));
+ }
+
+ @Test
+ public void testDebug() {
+ String msg = "This is a test debug";
+ logger.debug(msg);
+ TestAppender appender = result.get(DEBUG);
+ Assert.assertTrue(appender.contains((event) ->
+ Level.DEBUG.equals(event.getLevel()) && msg.equals(event.getFormattedMessage())));
+ }
+
+ @Test
+ public void testInfo() {
+ String msg = "This is a test info";
+ logger.info(msg);
+ TestAppender appender = result.get(ERROR);
+ Assert.assertTrue(appender.contains((event) ->
+ Level.INFO.equals(event.getLevel()) && msg.equals(event.getFormattedMessage())));
+ }
+
+ @Test
+ public void testAudit() {
+ String msg = "This is a test audit";
+ logger.info(Markers.AUDIT, msg);
+ TestAppender appender = result.get(AUDIT);
+ Assert.assertTrue(appender.contains((event) ->
+ Level.INFO.equals(event.getLevel()) && msg.equals(event.getFormattedMessage())));
+ }
+
+ @Test
+ public void testMetrics() {
+ String msg = "This is a test metrics";
+ logger.info(Markers.METRICS, msg);
+ TestAppender appender = result.get(METRICS);
+ Assert.assertTrue(appender.contains((event) ->
+ Level.INFO.equals(event.getLevel()) && msg.equals(event.getFormattedMessage())));
+ }
+
+ /**
+ * An appender that just accumulates messages in a list and enables to inspect them
+ *
+ * @author EVITALIY
+ * @since 17/08/2016.
+ */
+ private static class TestAppender extends AppenderBase<ILoggingEvent> {
+
+ private List<ILoggingEvent> events = Collections.synchronizedList(new ArrayList<>(10));
+
+ @Override
+ protected void append(ILoggingEvent event) {
+ this.events.add(event);
+ }
+
+ public boolean contains(Predicate<ILoggingEvent> predicate) {
+ return events.stream().anyMatch(predicate);
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/api/LoggerTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/api/LoggerTest.java
new file mode 100644
index 0000000000..b154f0d71c
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/api/LoggerTest.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.core.logging.api;
+
+import org.testng.annotations.Test;
+
+/**
+ * This is only for manual testing - change ENABLE to 'true'
+ *
+ * @author evitaliy
+ * @since 13/09/2016.
+ */
+public class LoggerTest {
+
+ private static final boolean ENABLED = false;
+ private static final Logger LOGGER = LoggerFactory.getLogger(LoggerTest.class);
+
+ @Test(enabled = ENABLED)
+ public void testMetrics() throws Exception {
+ LOGGER.metrics("This is metrics");
+ }
+
+ @Test(enabled = ENABLED)
+ public void testAudit() throws Exception {
+ LOGGER.audit("This is audit");
+ }
+
+ @Test(enabled = ENABLED)
+ public void testDebug() throws Exception {
+ LOGGER.debug("This is debug");
+ }
+
+ @Test(enabled = ENABLED)
+ public void testInfo() throws Exception {
+ LOGGER.info("This is info");
+ }
+
+ @Test(enabled = ENABLED)
+ public void testWarn() throws Exception {
+ LOGGER.warn("This is warning");
+ }
+
+ @Test(enabled = ENABLED)
+ public void testError() throws Exception {
+ LOGGER.error("This is error");
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/aspects/MetricsAspectTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/aspects/MetricsAspectTest.java
new file mode 100644
index 0000000000..68d255c9c3
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/aspects/MetricsAspectTest.java
@@ -0,0 +1,452 @@
+/*-
+ * ============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.logging.aspects;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.reflect.SourceLocation;
+import org.aspectj.runtime.internal.AroundClosure;
+import org.easymock.EasyMock;
+import org.powermock.api.easymock.PowerMock;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockTestCase;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import sun.reflect.generics.reflectiveObjects.NotImplementedException;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Predicate;
+
+/**
+ * @author EVITALIY
+ * @since 17/08/2016.
+ */
+@PrepareForTest(LoggerFactory.class)
+public class MetricsAspectTest extends PowerMockTestCase {
+
+ private static final Object OBJ_TO_RETURN = new Object();
+ private static final String EXPECTED_MESSAGE = "'{}' took {} milliseconds";
+
+ @Test
+ public void testLogExecutionTime() throws Throwable {
+
+ String className = UUID.randomUUID().toString();
+ String methodName = UUID.randomUUID().toString();
+
+ TestLogger logger = initLogging(className, true);
+
+ MetricsAspect aspect = new MetricsAspect();
+ MockProceedingJoinPoint pjp = new MockProceedingJoinPoint(className, methodName);
+ Object returned = aspect.logExecutionTime(pjp);
+
+ Assert.assertEquals(OBJ_TO_RETURN, returned);
+ assertExecution(methodName, pjp, logger);
+ }
+
+ @Test
+ public void testMetricsDisabled() throws Throwable {
+
+ String className = UUID.randomUUID().toString();
+ String methodName = UUID.randomUUID().toString();
+
+ TestLogger logger = initLogging(className, false);
+
+ MetricsAspect aspect = new MetricsAspect();
+ MockProceedingJoinPoint pjp = new MockProceedingJoinPoint(className, methodName);
+ Object returned = aspect.logExecutionTime(pjp);
+
+ Assert.assertEquals(OBJ_TO_RETURN, returned);
+ Assert.assertEquals(1, pjp.getCount());
+ // return any event - must be empty
+ Assert.assertFalse(logger.contains((event) -> true));
+ }
+
+ @Test(expectedExceptions = IllegalArgumentException.class)
+ public void testThrowingError() throws Throwable {
+
+ String className = UUID.randomUUID().toString();
+ String methodName = UUID.randomUUID().toString();
+
+ final TestLogger logger = initLogging(className, true);
+
+ MetricsAspect aspect = new MetricsAspect();
+ MockProceedingJoinPoint pjp = new MockProceedingJoinPointWithException(className, methodName);
+
+ try {
+ aspect.logExecutionTime(pjp);
+ } finally {
+ assertExecution(methodName, pjp, logger);
+ }
+ }
+
+ private TestLogger initLogging(String className, boolean enabled) {
+ TestLogger logger = new TestLogger(enabled);
+ PowerMock.mockStatic(LoggerFactory.class);
+ EasyMock.expect(LoggerFactory.getLogger(className)).andReturn(logger);
+ PowerMock.replay(LoggerFactory.class);
+ return logger;
+ }
+
+ private void assertExecution(String methodName, MockProceedingJoinPoint pjp, TestLogger logger) {
+
+ Assert.assertEquals(1, pjp.getCount());
+ Assert.assertTrue(logger.contains((event) ->
+ (event != null) && (event.length == 3) && EXPECTED_MESSAGE.equals(event[0])
+ && methodName.equals(event[1]) && (event[2] instanceof Long)));
+ }
+
+ private static class MockSignature implements Signature {
+
+ private final String className;
+ private final String methodName;
+
+ private MockSignature(String className, String methodName) {
+ this.className = className;
+ this.methodName = methodName;
+ }
+
+ @Override
+ public String toShortString() {
+ return null;
+ }
+
+ @Override
+ public String toLongString() {
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ return methodName;
+ }
+
+ @Override
+ public int getModifiers() {
+ return 0;
+ }
+
+ @Override
+ public Class getDeclaringType() {
+ return null;
+ }
+
+ @Override
+ public String getDeclaringTypeName() {
+ return className;
+ }
+ }
+
+ private static class MockProceedingJoinPoint implements ProceedingJoinPoint {
+
+ private AtomicInteger count = new AtomicInteger(0);
+ private Signature signature;
+
+ MockProceedingJoinPoint(String className, String methodName) {
+ this.signature = new MockSignature(className, methodName);
+ }
+
+ int getCount() {
+ return count.get();
+ }
+
+ @Override
+ public Object proceed() throws Throwable {
+ count.incrementAndGet();
+ return OBJ_TO_RETURN;
+ }
+
+ @Override
+ public void set$AroundClosure(AroundClosure aroundClosure) {
+
+ }
+
+ @Override
+ public Object proceed(Object[] objects) throws Throwable {
+ return null;
+ }
+
+ @Override
+ public String toShortString() {
+ return null;
+ }
+
+ @Override
+ public String toLongString() {
+ return null;
+ }
+
+ @Override
+ public Object getThis() {
+ return null;
+ }
+
+ @Override
+ public Object getTarget() {
+ return null;
+ }
+
+ @Override
+ public Object[] getArgs() {
+ return new Object[0];
+ }
+
+ @Override
+ public Signature getSignature() {
+ return this.signature;
+ }
+
+ @Override
+ public SourceLocation getSourceLocation() {
+ return null;
+ }
+
+ @Override
+ public String getKind() {
+ return null;
+ }
+
+ @Override
+ public StaticPart getStaticPart() {
+ return null;
+ }
+ }
+
+ private static class MockProceedingJoinPointWithException extends MockProceedingJoinPoint {
+
+ MockProceedingJoinPointWithException(String className, String methodName) {
+ super(className, methodName);
+ }
+
+ @Override
+ public Object proceed() throws Throwable {
+ super.proceed();
+ throw new IllegalArgumentException();
+ }
+ }
+
+ private class TestLogger implements Logger {
+
+ private final boolean enabled;
+ private List<Object[]> events = Collections.synchronizedList(new ArrayList<>(10));
+
+ public TestLogger(boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ @Override
+ public String getName() {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public boolean isMetricsEnabled() {
+ return this.enabled;
+ }
+
+ @Override
+ public void metrics(String var1) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void metrics(String var1, Object var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void metrics(String var1, Object var2, Object var3) {
+
+ if (this.enabled) {
+ events.add(new Object[]{var1, var2, var3});
+ }
+ }
+
+ @Override
+ public void metrics(String var1, Object... var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void metrics(String var1, Throwable throwable) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public boolean isAuditEnabled() {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void audit(String var1) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void audit(String var1, Object var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void audit(String var1, Object var2, Object var3) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void audit(String var1, Object... var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void audit(String var1, Throwable throwable) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void debug(String var1) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void debug(String var1, Object var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void debug(String var1, Object var2, Object var3) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void debug(String var1, Object... var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void debug(String var1, Throwable throwable) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void info(String var1) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void info(String var1, Object var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void info(String var1, Object var2, Object var3) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void info(String var1, Object... var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void info(String var1, Throwable throwable) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void warn(String var1) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void warn(String var1, Object var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void warn(String var1, Object... var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void warn(String var1, Object var2, Object var3) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void warn(String var1, Throwable throwable) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void error(String var1) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void error(String var1, Object var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void error(String var1, Object var2, Object var3) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void error(String var1, Object... var2) {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public void error(String var1, Throwable throwable) {
+ throw new NotImplementedException();
+ }
+
+ public boolean contains(Predicate<Object[]> predicate) {
+ return events.stream().anyMatch(predicate);
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/MDCPropagationFactoryTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/MDCPropagationFactoryTest.java
new file mode 100644
index 0000000000..f2a6549a2a
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/MDCPropagationFactoryTest.java
@@ -0,0 +1,216 @@
+/*-
+ * ============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.logging.context;
+
+import org.slf4j.MDC;
+import org.testng.annotations.Test;
+
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static org.testng.Assert.*;
+
+/**
+ * @author evitaliy
+ * @since 12/09/2016.
+ */
+public class MDCPropagationFactoryTest {
+
+ @Test
+ public void testNoPropagation() throws InterruptedException {
+
+ String uuid = UUID.randomUUID().toString();
+ AtomicBoolean complete = new AtomicBoolean(false);
+ MDC.put("data", uuid);
+
+ Runnable runnable = () -> {
+ assertNull(MDC.get("data"));
+ complete.set(true);
+ };
+
+ Thread thread = new Thread(runnable);
+ thread.start();
+ thread.join();
+
+ assertEquals(MDC.get("data"), uuid);
+ assertTrue(complete.get());
+ }
+
+ @Test
+ public void testPropagation() throws InterruptedException {
+
+ String uuid = UUID.randomUUID().toString();
+ AtomicBoolean complete = new AtomicBoolean(false);
+ MDC.put("data", uuid);
+
+ MdcPropagationService factory = new MdcPropagationService();
+ Runnable runnable = factory.create(() -> {
+ assertEquals(MDC.get("data"), uuid);
+ complete.set(true);
+ });
+
+ Thread thread = new Thread(runnable);
+ thread.start();
+ thread.join();
+
+ assertEquals(MDC.get("data"), uuid);
+ assertTrue(complete.get());
+ }
+
+ @Test
+ public void testReplacement() throws InterruptedException {
+
+ String innerUuid = UUID.randomUUID().toString();
+ AtomicBoolean innerComplete = new AtomicBoolean(false);
+ AtomicBoolean outerComplete = new AtomicBoolean(false);
+
+ MDC.put("data", innerUuid);
+
+ MdcPropagationService factory = new MdcPropagationService();
+
+ // should run with the context of main thread
+ Runnable inner = factory.create(() -> {
+ assertEquals(MDC.get("data"), innerUuid);
+ innerComplete.set(true);
+ });
+
+ // pushes its own context, but runs the inner runnable
+ Runnable outer = () -> {
+ String outerUuid = UUID.randomUUID().toString();
+ MDC.put("data", outerUuid);
+ inner.run();
+ assertEquals(MDC.get("data"), outerUuid);
+ outerComplete.set(true);
+ };
+
+
+ Thread thread = new Thread(outer);
+ thread.start();
+ thread.join();
+
+ assertEquals(MDC.get("data"), innerUuid);
+ assertTrue(outerComplete.get());
+ assertTrue(innerComplete.get());
+ }
+
+ @Test
+ public void testEmpty() throws InterruptedException {
+
+ final AtomicBoolean complete = new AtomicBoolean(false);
+
+ MDC.remove("data");
+ assertNull(MDC.get("data"));
+
+ MdcPropagationService factory = new MdcPropagationService();
+ Runnable runnable = factory.create(() -> {
+ assertNull(MDC.get("data"));
+ complete.set(true);
+ });
+
+ Thread thread = new Thread(runnable);
+ thread.start();
+ thread.join();
+
+ assertNull(MDC.get("data"));
+ assertTrue(complete.get());
+ }
+
+ @Test
+ public void testCleanup() throws Exception {
+
+ String innerUuid = UUID.randomUUID().toString();
+ AtomicBoolean innerComplete = new AtomicBoolean(false);
+ AtomicBoolean outerComplete = new AtomicBoolean(false);
+
+ MDC.put("data", innerUuid);
+
+ MdcPropagationService factory = new MdcPropagationService();
+
+ // should run with the context of main thread
+ Runnable inner = factory.create(() -> {
+ assertEquals(MDC.get("data"), innerUuid);
+ innerComplete.set(true);
+ });
+
+ // pushes its own context, but runs the inner runnable
+ Runnable outer = () -> {
+ assertNull(MDC.get("data"));
+ inner.run();
+ assertNull(MDC.get("data"));
+ outerComplete.set(true);
+ };
+
+ Thread thread = new Thread(outer);
+ thread.start();
+ thread.join();
+
+ assertEquals(MDC.get("data"), innerUuid);
+ assertTrue(outerComplete.get());
+ assertTrue(innerComplete.get());
+ }
+
+ @Test
+ public void testCleanupAfterError() throws Exception {
+
+ String innerUuid = UUID.randomUUID().toString();
+ AtomicBoolean innerComplete = new AtomicBoolean(false);
+ AtomicBoolean outerComplete = new AtomicBoolean(false);
+ AtomicBoolean exceptionThrown = new AtomicBoolean(false);
+
+ MDC.put("data", innerUuid);
+
+ MdcPropagationService factory = new MdcPropagationService();
+
+ // should run with the context of main thread
+ Runnable inner = factory.create(() -> {
+ assertEquals(MDC.get("data"), innerUuid);
+ innerComplete.set(true);
+ throw new RuntimeException();
+ });
+
+ // pushes its own context, but runs the inner runnable
+ Runnable outer = () -> {
+
+ String outerUuid = UUID.randomUUID().toString();
+ MDC.put("data", outerUuid);
+ assertEquals(MDC.get("data"), outerUuid);
+
+ try {
+ inner.run();
+ } catch (RuntimeException e) {
+ exceptionThrown.set(true);
+ } finally {
+ assertEquals(MDC.get("data"), outerUuid);
+ outerComplete.set(true);
+ }
+ };
+
+ Thread thread = new Thread(outer);
+ thread.start();
+ thread.join();
+
+ assertEquals(MDC.get("data"), innerUuid);
+ assertTrue(outerComplete.get());
+ assertTrue(innerComplete.get());
+ assertTrue(exceptionThrown.get());
+ }
+
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/TaskFactoryTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/TaskFactoryTest.java
new file mode 100644
index 0000000000..1649302056
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/context/TaskFactoryTest.java
@@ -0,0 +1,26 @@
+package org.openecomp.core.logging.context;
+
+import org.openecomp.core.logging.api.context.TaskFactory;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Field;
+
+import static org.testng.Assert.assertEquals;
+
+/**
+ * @author evitaliy
+ * @since 12/09/2016.
+ */
+public class TaskFactoryTest {
+
+ @Test
+ public void testCreate() throws Exception {
+ // test that the service loader loads the right implementation
+ TaskFactory.create(() -> {
+ });
+ Field factory = TaskFactory.class.getDeclaredField("SERVICE");
+ factory.setAccessible(true);
+ Object implementation = factory.get(null);
+ assertEquals(MdcPropagationService.class, implementation.getClass());
+ }
+} \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/logback/EventTypeDiscriminatorTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/logback/EventTypeDiscriminatorTest.java
new file mode 100644
index 0000000000..e2293b1761
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/logback/EventTypeDiscriminatorTest.java
@@ -0,0 +1,220 @@
+/*-
+ * ============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.logging.logback;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.LoggingEvent;
+import org.openecomp.core.logging.Markers;
+import org.slf4j.MarkerFactory;
+import org.testng.annotations.Test;
+
+import static org.testng.Assert.assertEquals;
+
+/**
+ * @author EVITALIY
+ * @since 17/08/2016.
+ */
+public class EventTypeDiscriminatorTest {
+
+ private static final String DEBUG = "Debug";
+ private static final String ERROR = "Error";
+
+ @Test
+ public void testGetDefaultDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetErrorDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.ERROR);
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetWarnDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.WARN);
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetInfoDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetTraceDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.TRACE);
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetErrorWithAuditDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.ERROR);
+ event.setMarker(Markers.AUDIT);
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetErrorWithMetricsDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.ERROR);
+ event.setMarker(Markers.METRICS);
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetWarnWithAuditDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.WARN);
+ event.setMarker(Markers.AUDIT);
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetWarnWithMetricsDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.WARN);
+ event.setMarker(Markers.METRICS);
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetDebugWithAuditDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMarker(Markers.AUDIT);
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetDebugWithMetricsDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMarker(Markers.METRICS);
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetTraceWithAuditDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.TRACE);
+ event.setMarker(Markers.AUDIT);
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetTraceWithMetricsDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.TRACE);
+ event.setMarker(Markers.METRICS);
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetErrorWithMarkerDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.ERROR);
+ event.setMarker(MarkerFactory.getMarker("Dummy"));
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetWarnWithMarkerDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.WARN);
+ event.setMarker(MarkerFactory.getMarker("Dummy"));
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetDebugWithMarkerDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMarker(MarkerFactory.getMarker("Dummy"));
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetTraceWithMarkerDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.TRACE);
+ event.setMarker(MarkerFactory.getMarker("Dummy"));
+ assertEquals(discriminator.getDiscriminatingValue(event), DEBUG);
+ }
+
+ @Test
+ public void testGetInfoWithMarkerDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMarker(MarkerFactory.getMarker("Dummy"));
+ assertEquals(discriminator.getDiscriminatingValue(event), ERROR);
+ }
+
+ @Test
+ public void testGetAuditDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMarker(Markers.AUDIT);
+ assertEquals(discriminator.getDiscriminatingValue(event), "Audit");
+ }
+
+ @Test
+ public void testGetMetricsMarkerDiscriminatingValue() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMarker(Markers.METRICS);
+ assertEquals(discriminator.getDiscriminatingValue(event), "Metrics");
+ }
+
+ @Test
+ public void testGetKey() throws Exception {
+ EventTypeDiscriminator discriminator = new EventTypeDiscriminator();
+ assertEquals("eventType", discriminator.getKey());
+ }
+
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/servlet/LoggingFilterTest.java b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/servlet/LoggingFilterTest.java
new file mode 100644
index 0000000000..f1d303b234
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/java/org/openecomp/core/logging/servlet/LoggingFilterTest.java
@@ -0,0 +1,314 @@
+/*-
+ * ============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.logging.servlet;
+
+import org.slf4j.MDC;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import javax.servlet.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.net.InetAddress;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+
+/**
+ * TODO: Add more tests
+ *
+ * @author EVITALIY
+ * @since 17/08/2016.
+ */
+public class LoggingFilterTest {
+
+ private static final String REMOTE_HOST = UUID.randomUUID().toString();
+
+ @Test
+ public void testDoFilter() throws Exception {
+ LoggingFilter loggingFilter = new LoggingFilter();
+ ServletRequest mockRequest = new TestServletRequest();
+ ServletResponse mockResponse = new TestServletResponse();
+ TestFilterChain mockChain = new TestFilterChain();
+ loggingFilter.doFilter(mockRequest, mockResponse, mockChain);
+ assertEquals(1, mockChain.getCount());
+ assertNull(MDC.getCopyOfContextMap());
+ }
+
+ private static class TestServletRequest implements ServletRequest {
+
+ @Override
+ public Object getAttribute(String s) {
+ return null;
+ }
+
+ @Override
+ public Enumeration getAttributeNames() {
+ return null;
+ }
+
+ @Override
+ public String getCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public void setCharacterEncoding(String s) throws UnsupportedEncodingException {
+
+ }
+
+ @Override
+ public int getContentLength() {
+ return 0;
+ }
+
+ @Override
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public ServletInputStream getInputStream() throws IOException {
+ return null;
+ }
+
+ @Override
+ public String getParameter(String s) {
+ return null;
+ }
+
+ @Override
+ public Enumeration getParameterNames() {
+ return null;
+ }
+
+ @Override
+ public String[] getParameterValues(String s) {
+ return new String[0];
+ }
+
+ @Override
+ public Map getParameterMap() {
+ return null;
+ }
+
+ @Override
+ public String getProtocol() {
+ return null;
+ }
+
+ @Override
+ public String getScheme() {
+ return null;
+ }
+
+ @Override
+ public String getServerName() {
+ return null;
+ }
+
+ @Override
+ public int getServerPort() {
+ return 0;
+ }
+
+ @Override
+ public BufferedReader getReader() throws IOException {
+ return null;
+ }
+
+ @Override
+ public String getRemoteAddr() {
+ return null;
+ }
+
+ @Override
+ public String getRemoteHost() {
+ return REMOTE_HOST;
+ }
+
+ @Override
+ public void setAttribute(String s, Object o) {
+
+ }
+
+ @Override
+ public void removeAttribute(String s) {
+
+ }
+
+ @Override
+ public Locale getLocale() {
+ return null;
+ }
+
+ @Override
+ public Enumeration getLocales() {
+ return null;
+ }
+
+ @Override
+ public boolean isSecure() {
+ return false;
+ }
+
+ @Override
+ public RequestDispatcher getRequestDispatcher(String s) {
+ return null;
+ }
+
+ @Override
+ public String getRealPath(String s) {
+ return null;
+ }
+
+ @Override
+ public int getRemotePort() {
+ return 0;
+ }
+
+ @Override
+ public String getLocalName() {
+ return null;
+ }
+
+ @Override
+ public String getLocalAddr() {
+ return null;
+ }
+
+ @Override
+ public int getLocalPort() {
+ return 0;
+ }
+ }
+
+ private static class TestFilterChain implements FilterChain {
+
+ private AtomicInteger count = new AtomicInteger(0);
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
+ throws IOException, ServletException {
+
+ Assert.assertNotNull(MDC.get("RequestId"));
+ Assert.assertEquals(MDC.get("ServiceInstanceId"), "N/A");
+ Assert.assertEquals(MDC.get("ServiceName"), "SDC");
+ Assert.assertEquals(MDC.get("InstanceUUID"), "N/A");
+ Assert.assertEquals(MDC.get("RemoteHost"), REMOTE_HOST);
+
+ InetAddress host = InetAddress.getLocalHost();
+ Assert.assertEquals(MDC.get("ServerIPAddress"), host.getHostAddress());
+ Assert.assertEquals(MDC.get("ServerFQDN"), host.getHostName());
+
+ count.incrementAndGet();
+ }
+
+ public int getCount() {
+ return count.get();
+ }
+ }
+
+ private static class TestServletResponse implements ServletResponse {
+
+ @Override
+ public String getCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public void setCharacterEncoding(String s) {
+
+ }
+
+ @Override
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public void setContentType(String s) {
+
+ }
+
+ @Override
+ public ServletOutputStream getOutputStream() throws IOException {
+ return null;
+ }
+
+ @Override
+ public PrintWriter getWriter() throws IOException {
+ return null;
+ }
+
+ @Override
+ public void setContentLength(int i) {
+
+ }
+
+ @Override
+ public int getBufferSize() {
+ return 0;
+ }
+
+ @Override
+ public void setBufferSize(int i) {
+
+ }
+
+ @Override
+ public void flushBuffer() throws IOException {
+
+ }
+
+ @Override
+ public void resetBuffer() {
+
+ }
+
+ @Override
+ public boolean isCommitted() {
+ return false;
+ }
+
+ @Override
+ public void reset() {
+
+ }
+
+ @Override
+ public Locale getLocale() {
+ return null;
+ }
+
+ @Override
+ public void setLocale(Locale locale) {
+
+ }
+ }
+}
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/README b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/README
new file mode 100644
index 0000000000..430f36d760
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/README
@@ -0,0 +1,8 @@
+Different routing/dispatching mechanisms can be tested using -Dlogback.configurationFile and a custom configuration
+file, for example
+
+-Dlogback.configurationFile=<path>/dispatching-logback.xml
+
+or
+
+-Dlogback.configurationFile=<path>/sifting-logback.xml \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/dispatching-logback.xml b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/dispatching-logback.xml
new file mode 100644
index 0000000000..d0aff70b8a
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/dispatching-logback.xml
@@ -0,0 +1,335 @@
+<configuration scan="true" scanPeriod="3 seconds">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="logs" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="debug-logs" />
+
+ <!-- specify the component name -->
+ <property name="componentName" value="SDC" />
+
+ <!-- log file names -->
+ <property name="generalLogName" value="application" />
+ <property name="securityLogName" value="security" />
+ <property name="performanceLogName" value="performance" />
+ <property name="serverLogName" value="server" />
+ <property name="policyLogName" value="policy" />
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="defaultPattern" value="%date{ISO8601,UTC}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
+
+ <property name="debugLoggerPattern" value="%date{ISO8601,UTC}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}|[%caller{3}]| %msg%n" />
+
+ <property name="logDirectory" value="${logDir}/${componentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}" />
+
+
+ <!-- Example evaluator filter applied against console appender -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+
+ <appender name="EELF"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${generalLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${generalLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELF" />
+ </appender>
+
+ <!-- EELF Security Appender. This appender is used to record security events
+ to the security log file. Security events are separate from other loggers
+ in EELF so that security log records can be captured and managed in a secure
+ way separate from the other logs. This appender is set to never discard any
+ events. -->
+ <appender name="EELFSecurity"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${securityLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <discardingThreshold>0</discardingThreshold>
+ <appender-ref ref="EELFSecurity" />
+ </appender>
+
+ <!-- EELF Performance Appender. This appender is used to record performance
+ records. -->
+ <appender name="EELFPerformance"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${performanceLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <outputPatternAsHeader>true</outputPatternAsHeader>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFPerformance" />
+ </appender>
+
+ <!-- EELF Server Appender. This appender is used to record Server related
+ logging events. The Server logger and appender are specializations of the
+ EELF application root logger and appender. This can be used to segregate Server
+ events from other components, or it can be eliminated to record these events
+ as part of the application root log. -->
+ <appender name="EELFServer"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${serverLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFServer" />
+ </appender>
+
+
+ <!-- EELF Policy Appender. This appender is used to record Policy engine
+ related logging events. The Policy logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+ <appender name="EELFPolicy"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${policyLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFPolicy" />
+ </appender>
+
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${debugLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+ <logger name="org.openecomp.eelf" level="info" additivity="false">
+ <appender-ref ref="asyncEELF" />
+ </logger>
+ <logger name="org.openecomp.eelf.security" level="info" additivity="false">
+ <appender-ref ref="asyncEELFSecurity" />
+ </logger>
+ <logger name="org.openecomp.eelf.perf" level="info" additivity="false">
+ <appender-ref ref="asyncEELFPerformance" />
+ </logger>
+ <logger name="org.openecomp.eelf.server" level="info" additivity="false">
+ <appender-ref ref="asyncEELFServer" />
+ </logger>
+ <logger name="org.openecomp.eelf.policy" level="info" additivity="false">
+ <appender-ref ref="asyncEELFPolicy" />
+ </logger>
+
+ <logger name="org.openecomp.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="org.openecomp.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+
+ <logger name="org.openecomp.eelf.error" level="error" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+
+ <logger name="org.openecomp.eelf.debug" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFDebug" />
+ </logger>
+
+ <appender name="DISPATCHER" class="org.openecomp.core.logging.logback.DispatchingAppender">
+ <discriminator class="org.openecomp.core.logging.logback.EventTypeDiscriminator"/>
+ <appenderNamePattern>asyncEELF%s</appenderNamePattern>
+ </appender>
+
+ <root level="DEBUG" additivity="false">
+ <appender-ref ref="DISPATCHER" />
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/logback.xml b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/logback.xml
new file mode 100644
index 0000000000..c79eca228b
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/logback.xml
@@ -0,0 +1,41 @@
+<configuration scan="true" scanPeriod="3 seconds">
+
+ <property name="logDir" value="logs" />
+ <property name="componentName" value="SDC" />
+
+ <property name="defaultPattern"
+ value="%logger|%date{ISO8601,UTC}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
+
+ <property name="logDirectory" value="${logDir}/${componentName}" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="DISPATCHER" class="ch.qos.logback.classic.sift.SiftingAppender">
+ <discriminator class="org.openecomp.core.logging.logback.EventTypeDiscriminator"/>
+ <sift>
+ <appender name="${eventType}" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${eventType}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${eventType}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ </sift>
+ </appender>
+
+ <root level="DEBUG">
+ <appender-ref ref="DISPATCHER" />
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/sifting-logback.xml b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/sifting-logback.xml
new file mode 100644
index 0000000000..1b50e10924
--- /dev/null
+++ b/common/openecomp-logging-lib/openecomp-logging-core/src/test/resources/sifting-logback.xml
@@ -0,0 +1,42 @@
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+
+ <property name="logDir" value="logs" />
+ <property name="componentName" value="SDC" />
+
+ <property name="defaultPattern" value="%date{ISO8601,UTC}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
+
+ <property name="debugPattern" value="%date{ISO8601,UTC}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}|[%caller{3}]| %msg%n" />
+
+ <property name="logDirectory" value="${logDir}/${componentName}" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="DISPATCHER" class="ch.qos.logback.classic.sift.SiftingAppender">
+ <discriminator class="org.openecomp.core.logging.logback.EventTypeDiscriminator"/>
+ <sift>
+ <appender name="${eventType}" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${eventType}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${eventType}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ </sift>
+ </appender>
+
+ <root level="DEBUG" additivity="false">
+ <appender-ref ref="DISPATCHER" />
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-logging-lib/pom.xml b/common/openecomp-logging-lib/pom.xml
new file mode 100644
index 0000000000..9229d2a8a2
--- /dev/null
+++ b/common/openecomp-logging-lib/pom.xml
@@ -0,0 +1,34 @@
+<?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.common</groupId>
+ <artifactId>openecomp-logging-lib</artifactId>
+ <packaging>pom</packaging>
+
+ <parent>
+ <artifactId>openecomp-common-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <modules>
+ <module>openecomp-logging-api</module>
+ <module>openecomp-logging-core</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
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
new file mode 100644
index 0000000000..4e94ac936d
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/pom.xml
@@ -0,0 +1,127 @@
+<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-artifact-generator-api</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-api</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.10</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-core</artifactId>
+ <version>${logback.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>${commons.codec.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.reflections</groupId>
+ <artifactId>reflections</artifactId>
+ <version>${org.reflections.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-core</artifactId>
+ <version>${project.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>
+ <scope>test</scope>
+ <version>4.11</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jvnet.jaxb2.maven2</groupId>
+ <artifactId>maven-jaxb2-plugin</artifactId>
+ <version>${mvn.jaxb2.version}</version>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <schemaDirectory>src/main/resources</schemaDirectory>
+ <generatePackage>org.openecomp.sdc.generator.aai.xml</generatePackage>
+ <generateDirectory>target/generated-sources/aai/xml</generateDirectory>
+ <schemaIncludes>
+ <include>aai_schema_v10.xsd</include>
+ </schemaIncludes>
+ <extension>true</extension>
+ <args>
+ <arg>-Xannotate</arg>
+ </args>
+ <plugins>
+ <plugin>
+ <groupId>org.jvnet.jaxb2_commons</groupId>
+ <artifactId>jaxb2-basics-annotate</artifactId>
+ <version>0.6.4</version>
+ </plugin>
+ <!-- Add the dependencies with your annotations as 'plugins' below -->
+ <plugin>
+ <groupId>org.jvnet.jaxb2_commons</groupId>
+ <artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId>
+ <version>1.0.0</version>
+ </plugin>
+ </plugins>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project>
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGenerator.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGenerator.java
new file mode 100644
index 0000000000..f3c2cb97e7
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGenerator.java
@@ -0,0 +1,72 @@
+/*-
+ * ============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.generator.aai;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CATEGORY;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_DESCRIPTION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_PARTNER_NAME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.PARTNER_NAME;
+
+import org.openecomp.sdc.generator.aai.model.Resource;
+import org.openecomp.sdc.generator.aai.model.Service;
+import org.openecomp.sdc.generator.aai.model.Widget;
+import org.openecomp.sdc.generator.logging.CategoryLogLevel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Arrays;
+
+public interface AaiModelGenerator {
+
+ /**
+ * Gets instance.
+ *
+ * @return the instance
+ */
+ public static AaiModelGenerator getInstance() {
+ Logger log = LoggerFactory.getLogger(AaiModelGenerator.class.getName());
+ try {
+ return AaiModelGenerator.class.cast(
+ Class.forName("org.openecomp.sdc.generator.aai.AaiModelGeneratorImpl").newInstance());
+ } catch (Exception exception) {
+ MDC.put(PARTNER_NAME, GENERATOR_PARTNER_NAME);
+ MDC.put(ERROR_CATEGORY, CategoryLogLevel.ERROR.name());
+ MDC.put(ERROR_CODE, GENERATOR_ERROR_CODE);
+ MDC.put(ERROR_DESCRIPTION, GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED);
+ StringWriter sw = new StringWriter();
+ exception.printStackTrace(new PrintWriter(sw));
+ log.error(sw.toString());
+ }
+ return null;
+ }
+
+ public String generateModelFor(Service service);
+
+ public String generateModelFor(Resource resource);
+
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResource.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResource.java
new file mode 100644
index 0000000000..ef8555002f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResource.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+
+@Model(widget = Widget.Type.ALLOTTED_RESOURCE, cardinality = Cardinality.UNBOUNDED,
+ dataDeleteFlag = true)
+public class AllotedResource extends Resource {
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResourceWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResourceWidget.java
new file mode 100644
index 0000000000..0b0db794c4
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/AllotedResourceWidget.java
@@ -0,0 +1,32 @@
+/*-
+ * ============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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.ALLOTTED_RESOURCE, cardinality
+ = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "allotted-resource")
+public class AllotedResourceWidget extends ResourceWidget {
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/FlavorWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/FlavorWidget.java
new file mode 100644
index 0000000000..0cb76ae2b5
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/FlavorWidget.java
@@ -0,0 +1,32 @@
+/*-
+ * ============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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.FLAVOR, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = false)
+@ModelWidget(type = ModelType.WIDGET, name = "flavor")
+public class FlavorWidget extends ResourceWidget {
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ImageWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ImageWidget.java
new file mode 100644
index 0000000000..cb514bcc8f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ImageWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.IMAGE, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = false)
+@ModelWidget(type = ModelType.WIDGET, name = "image")
+public class ImageWidget extends ResourceWidget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3Network.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3Network.java
new file mode 100644
index 0000000000..3a4c564668
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3Network.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.L3_NET, cardinality = Cardinality
+ .UNBOUNDED, dataDeleteFlag = false)
+public class L3Network extends Resource{
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3NetworkWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3NetworkWidget.java
new file mode 100644
index 0000000000..67414b4ed8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/L3NetworkWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.L3_NET,
+ cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "l3-network")
+public class L3NetworkWidget extends Widget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/LIntfWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/LIntfWidget.java
new file mode 100644
index 0000000000..4aa6cd29aa
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/LIntfWidget.java
@@ -0,0 +1,32 @@
+/*-
+ * ============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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.LINT, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "l-interface")
+public class LIntfWidget extends ResourceWidget {
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Model.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Model.java
new file mode 100644
index 0000000000..c55abb36c2
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Model.java
@@ -0,0 +1,259 @@
+/*-
+ * ============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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.data.GeneratorConstants;
+import org.openecomp.sdc.generator.error.IllegalAccessException;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+public abstract class Model {
+
+ protected Set<Resource> resources = new HashSet<>();
+ protected Set<Widget> widgets = new HashSet<>();
+ private String modelId;
+ private String modelName;
+ private ModelType modelType;
+ private String modelVersion;
+ private String modelNameVersionId;
+ private String modelDescription;
+
+ /**
+ * Gets model for.
+ *
+ * @param toscaType the tosca type
+ * @return the model for
+ */
+ public static Model getModelFor(String toscaType) {
+
+ Model modelToBeReturned = null;
+ while (toscaType != null && toscaType.lastIndexOf(".") != -1 && modelToBeReturned == null) {
+
+ switch (toscaType) {
+
+ case "org.openecomp.resource.vf.allottedResource":
+ modelToBeReturned = new AllotedResource();
+ break;
+ case "org.openecomp.resource.vfc.AllottedResource":
+ modelToBeReturned = new ProvidingService();
+ break;
+ case "org.openecomp.resource.vfc":
+ modelToBeReturned = new VServerWidget();
+ break;
+ case "org.openecomp.resource.cp":
+ case "org.openecomp.cp":
+ modelToBeReturned = new LIntfWidget();
+ break;
+ case "org.openecomp.resource.vl":
+ modelToBeReturned = new L3Network();
+ break;
+ case "org.openecomp.resource.vf":
+ modelToBeReturned = new VirtualFunction();
+ break;
+ case "org.openecomp.groups.vfmodule":
+ case "org.openecomp.groups.VfModule":
+ modelToBeReturned = new VfModule();
+ break;
+ case "org.openecomp.resource.vfc.nodes.heat.cinder":
+ modelToBeReturned = new VolumeWidget();
+ break;
+ default:
+ modelToBeReturned = null;
+ break;
+ }
+
+ toscaType = toscaType.substring(0, toscaType.lastIndexOf("."));
+ }
+
+ return modelToBeReturned;
+ }
+
+ public abstract boolean addResource(Resource resource);
+
+ public abstract boolean addWidget(Widget resource);
+
+ /**
+ * Gets widget version id.
+ *
+ * @return the widget version id
+ */
+ public String getWidgetId() {
+ org.openecomp.sdc.generator.aai.types.Model model =
+ this.getClass().getAnnotation(org.openecomp.sdc.generator.aai.types.Model.class);
+ return Widget.getWidget(model.widget()).getId();
+ }
+
+ /**
+ * Gets invariant id.
+ *
+ * @return the invariant id
+ */
+ public String getWidgetInvariantId() {
+ org.openecomp.sdc.generator.aai.types.Model model =
+ this.getClass().getAnnotation(org.openecomp.sdc.generator.aai.types.Model.class);
+ return Widget.getWidget(model.widget()).getWidgetId();
+ }
+
+ /**
+ * Gets delete flag.
+ *
+ * @return the delete flag
+ */
+ public boolean getDeleteFlag() {
+ org.openecomp.sdc.generator.aai.types.Model model =
+ this.getClass().getAnnotation(org.openecomp.sdc.generator.aai.types.Model.class);
+ return model.dataDeleteFlag();
+ }
+
+ /**
+ * Gets cardinality.
+ *
+ * @return the cardinality
+ */
+ public Cardinality getCardinality() {
+ org.openecomp.sdc.generator.aai.types.Model model =
+ this.getClass().getAnnotation(org.openecomp.sdc.generator.aai.types.Model.class);
+ return model.cardinality();
+ }
+
+ public abstract Widget.Type getWidgetType();
+
+ public String getModelId() {
+ checkSupported();
+ return modelId;
+ }
+
+ /**
+ * Gets model type.
+ *
+ * @return the model type
+ */
+ public ModelType getModelType() {
+ //checkSupported();
+ if (this instanceof Service) {
+ return ModelType.SERVICE;
+ } else if (this instanceof Resource) {
+ return ModelType.RESOURCE;
+ } else if (this instanceof Widget) {
+ return ModelType.WIDGET;
+ } else {
+ return null;
+ }
+ }
+
+ public String getModelName() {
+ //checkSupported();
+ return modelName;
+ }
+
+ public String getModelVersion() {
+ //checkSupported();
+ return modelVersion;
+ }
+
+ public String getModelNameVersionId() {
+ checkSupported();
+ return modelNameVersionId;
+ }
+
+ public String getModelDescription() {
+ //checkSupported();
+ return modelDescription;
+ }
+
+ /**
+ * Populate model identification information.
+ *
+ * @param modelIdentInfo the model ident info
+ */
+ public void populateModelIdentificationInformation(Map<String, String> modelIdentInfo) {
+ Iterator<String> iter = modelIdentInfo.keySet().iterator();
+ String property;
+ while (iter.hasNext()) {
+ switch (property = iter.next()) {
+
+ case "vfModuleModelInvariantUUID":
+ case "serviceInvariantUUID":
+ case "resourceInvariantUUID":
+ case "invariantUUID":
+ case "providing_service_invariant_uuid":
+ modelId = modelIdentInfo.get(property);
+ break;
+ case "vfModuleModelUUID":
+ case "resourceUUID":
+ case "serviceUUID":
+ case "UUID":
+ case "providing_service_uuid":
+ modelNameVersionId = modelIdentInfo.get(property);
+ break;
+ case "vfModuleModelVersion":
+ case "serviceVersion":
+ case "resourceversion":
+ case "version":
+ modelVersion = modelIdentInfo.get(property);
+ break;
+ case "vfModuleModelName":
+ case "serviceName":
+ case "resourceName":
+ case "name":
+ modelName = modelIdentInfo.get(property);
+ break;
+ case "serviceDescription":
+ case "resourceDescription":
+ case "vf_module_description":
+ case "description":
+ modelDescription = modelIdentInfo.get(property);
+ break;
+ case "providing_service_name":
+ modelName = modelIdentInfo.get(property);
+ modelDescription = modelIdentInfo.get(property);
+ break;
+ default:
+ break;
+ }
+ property = null;
+ }
+
+
+
+ }
+
+ public Set<Resource> getResources() {
+ return resources;
+ }
+
+ public Set<Widget> getWidgets() {
+ return widgets;
+ }
+
+ private void checkSupported() throws IllegalAccessException {
+ if (this instanceof Widget) {
+ throw new IllegalAccessException(GeneratorConstants
+ .GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION);
+ }
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/OamNetwork.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/OamNetwork.java
new file mode 100644
index 0000000000..f51fb529fb
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/OamNetwork.java
@@ -0,0 +1,32 @@
+/*-
+ * ============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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.L3_NET, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "oam-network")
+public class OamNetwork extends Widget {
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ProvidingService.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ProvidingService.java
new file mode 100644
index 0000000000..1eb4095f45
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ProvidingService.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.ALLOTTED_RESOURCE, cardinality = Cardinality
+ .UNBOUNDED,
+ dataDeleteFlag = false)
+public class ProvidingService extends Resource {
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Resource.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Resource.java
new file mode 100644
index 0000000000..cc95706d9f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Resource.java
@@ -0,0 +1,52 @@
+/*-
+ * ============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.generator.aai.model;
+
+public class Resource extends Model {
+
+ @Override
+ public int hashCode() {
+ return getModelNameVersionId().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Resource) {
+ return getModelNameVersionId().equals(((Resource) obj).getModelNameVersionId());
+ }
+ return false;
+ }
+
+ public boolean addResource(Resource resource) {
+ return resources.add(resource);
+ }
+
+ public boolean addWidget(Widget widget) {
+ return widgets.add(widget);
+ }
+
+ @Override
+ public Widget.Type getWidgetType() {
+ org.openecomp.sdc.generator.aai.types.Model model =
+ this.getClass().getAnnotation(org.openecomp.sdc.generator.aai.types.Model.class);
+ return model.widget();
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ResourceWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ResourceWidget.java
new file mode 100644
index 0000000000..26ff95dd7a
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ResourceWidget.java
@@ -0,0 +1,26 @@
+/*-
+ * ============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.generator.aai.model;
+
+public class ResourceWidget extends Widget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Service.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Service.java
new file mode 100644
index 0000000000..8b3b7f2c60
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Service.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.SERVICE,
+ cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+public class Service extends Model {
+
+ public boolean addResource(Resource resource) {
+ return resources.add(resource);
+ }
+
+ public boolean addWidget(Widget widget) {
+ return widgets.add(widget);
+ }
+
+ @Override
+ public Widget.Type getWidgetType() {
+ return null;
+ }
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ServiceWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ServiceWidget.java
new file mode 100644
index 0000000000..58ae7b6e63
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/ServiceWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@ModelWidget(type = ModelType.WIDGET, name = "service-instance")
+public class ServiceWidget extends Widget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TenantWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TenantWidget.java
new file mode 100644
index 0000000000..4fc6f6e8af
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TenantWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.TENANT, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = false)
+@ModelWidget(type = ModelType.WIDGET, name = "tenant")
+public class TenantWidget extends Widget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TunnelXconnectWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TunnelXconnectWidget.java
new file mode 100644
index 0000000000..87fd514fa2
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/TunnelXconnectWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.TUNNEL_XCONNECT,
+ cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "tunnel-xconnect")
+public class TunnelXconnectWidget extends Widget {
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VServerWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VServerWidget.java
new file mode 100644
index 0000000000..58dd677a18
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VServerWidget.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.sdc.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VSERVER, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "vserver")
+public class VServerWidget extends Widget {
+
+ /**
+ * Instantiates a new V server widget.
+ */
+ public VServerWidget() {
+ addWidget(new FlavorWidget());
+ addWidget(new ImageWidget());
+ addWidget(new TenantWidget());
+ addWidget(new VfcWidget());
+ }
+
+ public boolean addWidget(Widget widget) {
+ return widgets.add(widget);
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModule.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModule.java
new file mode 100644
index 0000000000..594cfedcbc
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModule.java
@@ -0,0 +1,81 @@
+/*-
+ * ============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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+
+import java.util.List;
+
+@Model(widget = Widget.Type.VFMODULE, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+public class VfModule extends Resource {
+
+ Widget vserver = null;
+ boolean addlintf = false;
+ boolean addvolume = false;
+
+ List<String> members;
+
+ public void setMembers(List<String> members) {
+ this.members = members;
+ }
+
+ /**
+ * Adds Widget.
+ *
+ * @param widget the widget
+ * @return the boolean
+ */
+ public boolean addWidget(Widget widget) {
+ if (widget.memberOf(members)) {
+ if (vserver == null && widget.getId().equals(new VServerWidget().getId())) {
+ vserver = widget;
+ if (addlintf) {
+ vserver.addWidget(new LIntfWidget());
+ }
+ if (addvolume) {
+ vserver.addWidget(new VolumeWidget());
+ }
+ } else if (widget.getId().equals(new LIntfWidget().getId())) {
+ if (vserver != null) {
+ vserver.addWidget(widget);
+ return true;
+ } else {
+ addlintf = true;
+ }
+ return false;
+ } else if (widget.getId().equals(new VolumeWidget().getId())) {
+ if (vserver != null) {
+ vserver.addWidget(widget);
+ } else {
+ addvolume = true;
+ }
+ return true;
+ }
+ if (widget.getId().equals(new OamNetwork().getId())) {
+ return false;
+ }
+ return widgets.add(widget);
+ }
+ return false;
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModuleWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModuleWidget.java
new file mode 100644
index 0000000000..3641ba9171
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfModuleWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.VFMODULE,
+ cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "vf-module")
+public class VfModuleWidget extends Widget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfWidget.java
new file mode 100644
index 0000000000..a2fde75b20
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.VF,
+ cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "generic-vnf")
+public class VfWidget extends ResourceWidget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfcWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfcWidget.java
new file mode 100644
index 0000000000..41a07ce1de
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VfcWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.VFC,
+ cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "vnfc")
+public class VfcWidget extends ResourceWidget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VirtualFunction.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VirtualFunction.java
new file mode 100644
index 0000000000..ec2ca38cbf
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VirtualFunction.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+
+@Model(widget = Widget.Type.VF, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+public class VirtualFunction extends Resource {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeGroupWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeGroupWidget.java
new file mode 100644
index 0000000000..c253ea9058
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeGroupWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@org.openecomp.sdc.generator.aai.types.Model(widget = Widget.Type.VOLUME_GROUP,
+ cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "volume-group")
+public class VolumeGroupWidget extends Widget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeWidget.java
new file mode 100644
index 0000000000..ddf840a822
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/VolumeWidget.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.generator.aai.model;
+
+import org.openecomp.sdc.generator.aai.types.Cardinality;
+import org.openecomp.sdc.generator.aai.types.Model;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VOLUME, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "volume")
+public class VolumeWidget extends ResourceWidget {
+
+}
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Widget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Widget.java
new file mode 100644
index 0000000000..6220519a3f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/model/Widget.java
@@ -0,0 +1,196 @@
+/*-
+ * ============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.generator.aai.model;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLPROP_NOT_FOUND;
+
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.aai.types.ModelWidget;
+import org.openecomp.sdc.generator.data.ArtifactType;
+import org.openecomp.sdc.generator.data.GeneratorConstants;
+import org.openecomp.sdc.generator.data.WidgetConfigurationUtil;
+import org.openecomp.sdc.generator.error.IllegalAccessException;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+public abstract class Widget extends Model {
+
+ private Set<String> keys = new HashSet<>();
+
+ /**
+ * Gets widget.
+ *
+ * @param type the type
+ * @return the widget
+ */
+ public static Widget getWidget(Type type) {
+
+ switch (type) {
+ case SERVICE:
+ return new ServiceWidget();
+ case VF:
+ return new VfWidget();
+ case VFC:
+ return new VfcWidget();
+ case VSERVER:
+ return new VServerWidget();
+ case VOLUME:
+ return new VolumeWidget();
+ case FLAVOR:
+ return new FlavorWidget();
+ case TENANT:
+ return new TenantWidget();
+ case VOLUME_GROUP:
+ return new VolumeGroupWidget();
+ case LINT:
+ return new LIntfWidget();
+ case L3_NET:
+ return new L3NetworkWidget();
+ case VFMODULE:
+ return new VfModuleWidget();
+ case IMAGE:
+ return new ImageWidget();
+ case OAM_NETWORK:
+ return new OamNetwork();
+ case ALLOTTED_RESOURCE:
+ return new AllotedResourceWidget();
+ case TUNNEL_XCONNECT:
+ return new TunnelXconnectWidget();
+ default:
+ return null;
+ }
+
+ }
+
+ /**
+ * Gets id.
+ *
+ * @return the id
+ */
+ public String getId() {
+ Properties properties = WidgetConfigurationUtil.getConfig();
+ String id = properties.getProperty(ArtifactType.AAI.name() + ".model-version-id." + getName());
+ if (id == null) {
+ throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
+ ArtifactType.AAI.name() + ".model-version-id." + getName()));
+ }
+ return id;
+ }
+
+ public ModelType getType() {
+ ModelWidget widgetModel = this.getClass().getAnnotation(ModelWidget.class);
+ return widgetModel.type();
+ }
+
+ public String getName() {
+ ModelWidget widgetModel = this.getClass().getAnnotation(ModelWidget.class);
+ return widgetModel.name();
+ }
+
+ /**
+ * Get Widget Id from properties file.
+ * @return - Widget Id
+ */
+ public String getWidgetId() {
+ Properties properties = WidgetConfigurationUtil.getConfig();
+ String id = properties.getProperty(ArtifactType.AAI.name() + ".model-invariant-id."
+ + getName());
+ if (id == null) {
+ throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
+ ArtifactType.AAI.name() + ".model-invariant-id." + getName()));
+ }
+ return id;
+ }
+
+ public int hashCode() {
+ return getId().hashCode();
+ }
+
+ @Override
+ public Type getWidgetType() {
+ return null;
+ }
+
+ /**
+ * Equals.
+ *
+ * @param obj Object
+ * @return the boolean
+ */
+ public boolean equals(Object obj) {
+ if (obj instanceof Widget) {
+ if (getId().equals(((Widget) obj).getId())) {
+ ((Widget) obj).keys.addAll(this.keys);
+ return true;
+ }
+ return false;
+ } else {
+ return false;
+ }
+ }
+
+ public void addKey(String key) {
+ this.keys.add(key);
+ }
+
+ /**
+ * Member of boolean.
+ *
+ * @param keys the keys
+ * @return the boolean
+ */
+ public boolean memberOf(List<String> keys) {
+ if (keys == null) {
+ return false;
+ }
+ return !Collections.disjoint(this.keys, keys);
+ }
+
+ /**
+ * All instances used boolean.
+ *
+ * @param collection the collection
+ * @return the boolean
+ */
+ public boolean allInstancesUsed(Set<String> collection) {
+ Set<String> keyCopy = new HashSet<>(keys);
+ keyCopy.removeAll(collection);
+ return keyCopy.isEmpty();
+ }
+
+ public boolean addResource(Resource resource) {
+ throw new IllegalAccessException(GeneratorConstants
+ .GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION);
+ }
+
+ public boolean addWidget(Widget widget) {
+ return true;
+ }
+
+ public enum Type {
+ SERVICE, VF, VFC, VSERVER, VOLUME, FLAVOR, TENANT, VOLUME_GROUP, LINT, L3_NET, VFMODULE, IMAGE,
+ OAM_NETWORK,ALLOTTED_RESOURCE,TUNNEL_XCONNECT
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/CapabilityAssignment.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/CapabilityAssignment.java
new file mode 100644
index 0000000000..919d5176db
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/CapabilityAssignment.java
@@ -0,0 +1,45 @@
+/*-
+ * ============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.generator.aai.tosca;
+
+import java.util.Map;
+
+public class CapabilityAssignment {
+
+ private Map<String, Object> properties;
+ private Map<String, Object> attributes;
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, Object> attributes) {
+ this.attributes = attributes;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/GroupDefinition.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/GroupDefinition.java
new file mode 100644
index 0000000000..7457929bf4
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/GroupDefinition.java
@@ -0,0 +1,73 @@
+/*-
+ * ============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.generator.aai.tosca;
+
+import java.util.List;
+import java.util.Map;
+
+public class GroupDefinition {
+
+ private String type;
+ private String description;
+ private Map<String, Object> properties;
+ private List<String> members;
+ private Map<String, String> metadata;
+
+ 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 Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getMembers() {
+ return members;
+ }
+
+ public void setMembers(List<String> members) {
+ this.members = members;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/NodeTemplate.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/NodeTemplate.java
new file mode 100644
index 0000000000..330020ba22
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/NodeTemplate.java
@@ -0,0 +1,82 @@
+/*-
+ * ============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.generator.aai.tosca;
+
+import java.util.List;
+import java.util.Map;
+
+public class NodeTemplate {
+
+ private String type;
+ private String description;
+ private Map<String, String> metadata;
+ private Map<String, Object> properties;
+ private List<Map<String, RequirementAssignment>> requirements;
+ private Map<String, CapabilityAssignment> capabilities;
+
+ 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 Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public List<Map<String, RequirementAssignment>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(List<Map<String, RequirementAssignment>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, CapabilityAssignment> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityAssignment> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/RequirementAssignment.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/RequirementAssignment.java
new file mode 100644
index 0000000000..38c89827bc
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/RequirementAssignment.java
@@ -0,0 +1,53 @@
+/*-
+ * ============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.generator.aai.tosca;
+
+public class RequirementAssignment {
+
+ private String capability;
+ private String node;
+ private String relationship;
+
+ public String getCapability() {
+ return capability;
+ }
+
+ public void setCapability(String capability) {
+ this.capability = capability;
+ }
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String node) {
+ this.node = node;
+ }
+
+ public String getRelationship() {
+ return relationship;
+ }
+
+ public void setRelationship(String relationship) {
+ this.relationship = relationship;
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/TopologyTemplate.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/TopologyTemplate.java
new file mode 100644
index 0000000000..572e105133
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/TopologyTemplate.java
@@ -0,0 +1,71 @@
+/*-
+ * ============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.generator.aai.tosca;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+public class TopologyTemplate {
+
+ private String description;
+ private Map<String, NodeTemplate> node_templates;
+ private Map<String, GroupDefinition> groups;
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, GroupDefinition> getGroups() {
+ return groups;
+ }
+
+ public void setGroups(Map<String, GroupDefinition> groups) {
+ this.groups = groups;
+ }
+
+ public Map<String, NodeTemplate> getNode_templates() {
+ return node_templates;
+ }
+
+ public void setNode_templates(Map<String, NodeTemplate> node_templates) {
+ this.node_templates = node_templates;
+ }
+
+ /**
+ * Add group.
+ *
+ * @param groupKey the group key
+ * @param groupDefinition the group definition
+ */
+ public void addGroup(String groupKey, GroupDefinition groupDefinition) {
+ if (Objects.isNull(this.groups)) {
+ this.groups = new HashMap<>();
+ }
+ this.groups.put(groupKey, groupDefinition);
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/ToscaTemplate.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/ToscaTemplate.java
new file mode 100644
index 0000000000..bd045b89c2
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/tosca/ToscaTemplate.java
@@ -0,0 +1,82 @@
+/*-
+ * ============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.generator.aai.tosca;
+
+import java.util.Map;
+
+public class ToscaTemplate {
+ private String toscaDefinitionsVersion;
+ private Map<String, String> metadata;
+ private String description;
+ private TopologyTemplate topology_template;
+
+ public String getToscaDefinitionsVersion() {
+ return toscaDefinitionsVersion;
+ }
+
+ public void setToscaDefinitionsVersion(String toscaDefinitionsVersion) {
+ this.toscaDefinitionsVersion = toscaDefinitionsVersion;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public TopologyTemplate getTopology_template() {
+ return topology_template;
+ }
+
+ public void setTopology_template(TopologyTemplate topology_template) {
+ this.topology_template = topology_template;
+ }
+
+ /**
+ * Is Service.
+ *
+ * @return the boolean
+ */
+ public boolean isService() {
+ return metadata.containsKey("serviceUUID")
+ || ("Service".equalsIgnoreCase(metadata.get("Type"))
+ || ("Service".equalsIgnoreCase(metadata.get("type"))));
+ }
+
+ public String getModelId() {
+ return metadata.get("invariantUUID");
+ }
+
+ public String getModelVersionId() {
+ return metadata.get("UUID");
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Cardinality.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Cardinality.java
new file mode 100644
index 0000000000..4aa967b730
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Cardinality.java
@@ -0,0 +1,26 @@
+/*-
+ * ============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.generator.aai.types;
+
+public enum Cardinality {
+
+ UNBOUNDED
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Model.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Model.java
new file mode 100644
index 0000000000..5fdadf40b3
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/Model.java
@@ -0,0 +1,55 @@
+/*-
+ * ============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.generator.aai.types;
+
+import org.openecomp.sdc.generator.aai.model.Widget;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Model {
+
+ /**
+ * Widget widget . type.
+ *
+ * @return the widget . type
+ */
+ public Widget.Type widget();
+
+ /**
+ * Data delete flag boolean.
+ *
+ * @return the boolean
+ */
+ public boolean dataDeleteFlag();
+
+ /**
+ * Cardinality cardinality.
+ *
+ * @return the cardinality
+ */
+ public Cardinality cardinality();
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelType.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelType.java
new file mode 100644
index 0000000000..e607b6a705
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelType.java
@@ -0,0 +1,47 @@
+/*-
+ * ============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.generator.aai.types;
+
+public enum ModelType {
+ SERVICE, RESOURCE, WIDGET;
+
+ /**
+ * Gets model type.
+ *
+ * @param modelType the model type
+ * @return the model type
+ */
+ public static ModelType getModelType(String modelType) {
+ if (modelType != null) {
+ switch (modelType.toLowerCase()) {
+ case "service":
+ return SERVICE;
+ case "resource":
+ return RESOURCE;
+ case "widget":
+ return WIDGET;
+ default:
+ return null;
+ }
+ }
+ return null;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelWidget.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelWidget.java
new file mode 100644
index 0000000000..71dbd5ef46
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/aai/types/ModelWidget.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.sdc.generator.aai.types;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ModelWidget {
+
+ /**
+ * Type model type.
+ *
+ * @return the model type
+ */
+ public ModelType type();
+
+ /**
+ * Name string.
+ *
+ * @return the string
+ */
+ public String name();
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/AdditionalParams.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/AdditionalParams.java
new file mode 100644
index 0000000000..2ec90cee5f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/AdditionalParams.java
@@ -0,0 +1,39 @@
+/*-
+ * ============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.generator.data;
+
+
+public enum AdditionalParams {
+ ServiceVersion("serviceVersion");
+
+ private String name;
+
+ AdditionalParams(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
+
+
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/Artifact.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/Artifact.java
new file mode 100644
index 0000000000..a6fd487558
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/Artifact.java
@@ -0,0 +1,96 @@
+/*-
+ * ============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.generator.data;
+
+public class Artifact {
+
+ String name;
+ String type;
+ String groupType;
+ String description;
+ String label;
+ String version;
+ String checksum;
+ byte[] payload;
+
+ /**
+ * Instantiates a new Artifact.
+ *
+ * @param type the type
+ * @param groupType the group type
+ * @param checksum the checksum
+ * @param payload the payload
+ */
+ public Artifact(String type, String groupType, String checksum, byte[] payload) {
+ this.type = type;
+ this.groupType = groupType;
+ this.checksum = checksum;
+ this.payload = payload;
+ }
+
+ public byte[] getPayload() {
+ return payload;
+ }
+
+ public String getChecksum() {
+ return checksum;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public String getGroupType() {
+ return groupType;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/ArtifactType.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/ArtifactType.java
new file mode 100644
index 0000000000..d6585c1e55
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/ArtifactType.java
@@ -0,0 +1,27 @@
+/*-
+ * ============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.generator.data;
+
+public enum ArtifactType {
+ OTHER,
+ AAI,
+ MODEL_INVENTORY_PROFILE
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GenerationData.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GenerationData.java
new file mode 100644
index 0000000000..4c17924162
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GenerationData.java
@@ -0,0 +1,70 @@
+/*-
+ * ============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.generator.data;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class GenerationData {
+
+ List<Artifact> resultData = new ArrayList<>();
+ Map<String, List<String>> errorData = new HashMap<>();
+
+ public void add(List<Artifact> resultData, Map<String, List<String>> errorData) {
+ this.resultData.addAll(resultData);
+ this.errorData.putAll(errorData);
+ }
+
+
+ public void add(Artifact generatedArtifact) {
+ resultData.add(generatedArtifact);
+ }
+
+ /**
+ * Add.
+ *
+ * @param generatorId the generator id
+ * @param errorCode the error code
+ */
+ public void add(String generatorId, String errorCode) {
+ List<String> errorIds;
+ if ((errorIds = errorData.get(generatorId)) == null) {
+ errorIds = new ArrayList<>();
+ errorData.put(generatorId, errorIds);
+ }
+ errorIds.add(errorCode);
+ }
+
+ public void add(GenerationData generationData) {
+ this.resultData.addAll(generationData.resultData);
+ this.errorData.putAll(generationData.errorData);
+ }
+
+ public List<Artifact> getResultData() {
+ return resultData;
+ }
+
+ public Map<String, List<String>> getErrorData() {
+ return errorData;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConfiguration.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConfiguration.java
new file mode 100644
index 0000000000..7a6a897761
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConfiguration.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.generator.data;
+
+import java.util.List;
+
+public class GeneratorConfiguration {
+
+ private List<ArtifactType> artifactTypes = null;
+
+ public List<ArtifactType> getArtifactTypes() {
+ return artifactTypes;
+ }
+
+ public void setArtifactTypes(List<ArtifactType> artifactTypes) {
+ this.artifactTypes = artifactTypes;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConstants.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConstants.java
new file mode 100644
index 0000000000..b606e0d86a
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorConstants.java
@@ -0,0 +1,129 @@
+/*-
+ * ============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.generator.data;
+
+public class GeneratorConstants {
+
+ public static final String GENERATOR_AAI_GENERATED_ARTIFACT_EXTENSION = "xml";
+
+ //Error codes
+ public static final String GENERATOR_INVOCATION_ERROR_CODE =
+ "ARTIFACT_GENERATOR_INVOCATION_ERROR";
+
+
+ //Error Constants
+ public static final String GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION =
+ "Invalid Client Configuration";
+ public static final String GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED =
+ "Unable to generate artifacts for the provided input";
+ public static final String GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED =
+ "Artifact Generation Service Instantiation failed";
+
+ //AAI Generator Error Messages
+ public static final String GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH =
+ "Checksum Mismatch for file : %s";
+ public static final String GENERATOR_AAI_ERROR_INVALID_TOSCA =
+ "Invalid format for Tosca YML : %s";
+ public static final String GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION =
+ "Invalid Service/Resource definition mandatory attribute <%s> missing in Artifact: <%s>";
+ public static final String GENERATOR_AAI_ERROR_INVALID_ID =
+ "Invalid value for mandatory attribute <%s> in Artifact: <%s>";
+ public static final String GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION =
+ "Operation Not Supported for Widgets";
+ public static final String GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA =
+ "Service tosca missing from list of input artifacts";
+ public static final String GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA =
+ "Invalid Service definition mandatory attribute version missing for resource with UUID: <%s>";
+
+ public static final String GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA =
+ "Cannot generate artifacts. Invalid Resource version in Service tosca for resource with "
+ + "UUID: "
+ + "<%s>";
+ public static final String GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA =
+ "Cannot generate artifacts. Resource Tosca missing for resource with UUID: <%s>";
+
+ public static final String GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION =
+ "Cannot generate artifacts. Service version is not specified";
+
+ public static final String GENERATOR_AAI_INVALID_SERVICE_VERSION =
+ "Cannot generate artifacts. Service version is incorrect";
+
+ //Logging constants
+ public static final String REQUEST_ID = "uuid";
+ public static final String SERVICE_INSTANCE_ID = "serviceInstanceID";
+ public static final String PARTNER_NAME = "userId";
+ public static final String SERVICE_NAME = "ServiceName";
+ public static final String INSTANCE_UUID = "InstanceUUID";
+ public static final String REMOTE_HOST = "RemoteHost";
+ public static final String CLIENT_IP = "ClientIP";
+ public static final String CATEGORY_LOG_LEVEL = "level";
+ public static final String STATUS_CODE = "StatusCode";
+ public static final String RESPONSE_CODE = "ResponseCode";
+ public static final String RESPONSE_DESCRIPTION = "ResponseDescription";
+ public static final String ELAPSED_TIME = "ElapsedTime";
+ public static final String BEGIN_TIMESTAMP = "BeginTimestamp";
+ public static final String TARGET_SERVICE_NAME = "TargetServiceName";
+ public static final String TARGET_ENTITY = "TargetEntity";
+ public static final String END_TIMESTAMP = "EndTimestamp";
+ public static final String ERROR_CATEGORY = "ErrorCategory";
+ public static final String ERROR_CODE = "ErrorCode";
+ public static final String ERROR_DESCRIPTION = "ErrorDescription";
+ public static final String MDC_SDC_INSTANCE_UUID = "SDC_INSTANCE_UUID";
+ public static final String SERVICE_METRIC_BEGIN_TIMESTAMP = "SERVICE-METRIC-BEGIN-TIMESTAMP";
+ public static final String LOCAL_ADDR = "localAddr"; //map ServerIPAddress from loggingfilter
+ public static final String BE_FQDN = "beFqdn"; //map ServerFQDN from logging filter
+ public static final String ARTIFACT_MODEL_INFO = "ARTIFACT_MODEL_INFO";
+
+ public static final String GENERATOR_ERROR_CODE = "300F";
+ public static final String GENERATOR_PARTNER_NAME = "SDC Catalog";
+ public static final String GENERATOR_METRICS_TARGET_ENTITY = "SDC Catalog";
+ public static final String GENERATOR_METRICS_FAILURE_RESPONSE_CODE = "300E";
+ public static final String GENERATOR_METRICS_FAILURE_RESPONSE_DESC = "Artifact generation "
+ + "failed for artifact type %s";
+ public static final String GENERATOR_METRICS_SUCCESS_RESPONSE_CODE = "010";
+ public static final String GENERATOR_METRICS_SUCCESS_RESPONSE_DESC = "Artifacts for type %s "
+ + "were generated successfully";
+ public static final String GENERATOR_AUDIT_NO_ARTIFACT_TYPE_RESPONSE_DESC = "No Artifact Type "
+ + "found" ;
+
+ //AAI Generator Error Messages for Logging
+ public static final String GENERATOR_AAI_ERROR_INVALID_TOSCA_MSG =
+ "Invalid format for Tosca YML";
+ public static final String GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION_MSG =
+ "Invalid Service/Resource definition mandatory attribute";
+ public static final String GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA_MSG =
+ "Service tosca missing from list of input artifacts";
+ public static final String GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION_MSG =
+ "Invalid Client Configuration";
+ public static final String GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED_MSG =
+ "Unable to generate artifacts for the provided input";
+ public static final String GENERATOR_AAI_CONFIGFILE_NOT_FOUND =
+ "Cannot generate artifacts. Artifact Generator Configuration file not found at %s";
+ public static final String GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND =
+ "Cannot generate artifacts. artifactgenerator.config system property not configured";
+ public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
+ "Cannot generate artifacts. Widget configuration not found for %s";
+ public static final String GENERATOR_AAI_PROVIDING_SERVICE_MISSING =
+ "Cannot generate artifacts. Providing Service is missing for allotted resource %s";
+ public static final String GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING =
+ "Cannot generate artifacts. Providing Service Metadata is missing for allotted resource %s";
+ public static final int ID_LENGTH = 36;
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorUtil.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorUtil.java
new file mode 100644
index 0000000000..080ae54944
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GeneratorUtil.java
@@ -0,0 +1,104 @@
+/*-
+ * ============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.generator.data;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import java.io.IOException;
+import java.util.Base64;
+
+/**
+ * Utility method class for artifact generation.
+ */
+public class GeneratorUtil {
+ /**
+ * Translate tosca yaml into the provided model class.
+ *
+ * @param tosca Tosca file content
+ * @param classOfT Model class for the translated object
+ * @param <T> Template parameter for the return object
+ * @return Object model for the provided tosca yaml file
+ */
+ public static <T> T translateTosca(String tosca, Class<T> classOfT) throws IOException {
+ T tos;
+ //changing file
+ ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); // jackson data-bind
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ tos = mapper.readValue(tosca, classOfT);
+ return tos;
+ }
+
+ /**
+ * Decodes Base64 encode byte array input.
+ *
+ * @param input Base64 encoded byte array
+ * @return Decoded byte array
+ */
+ public static byte[] decoder(byte[] input) {
+ if (input != null) {
+ byte[] output = Base64.getDecoder().decode(input);
+ return output;
+ }
+ return null;
+ }
+
+ /**
+ * Encode a byte array input using Base64 encoding.
+ *
+ * @param input Input byte array to be encoded
+ * @return Base64 encoded byte array
+ */
+ public static byte[] encode(byte[] input) {
+ if (input != null) {
+ byte[] output = Base64.getEncoder().encode(input);
+ return output;
+ }
+ return null;
+ }
+
+ /**
+ * Calculate the checksum for a given input.
+ *
+ * @param input Byte array for which the checksum has to be calculated
+ * @return Calculated checksum of the input byte array
+ */
+ public static String checkSum(byte[] input) {
+ String checksum = null;
+ if (input != null) {
+ checksum = (DigestUtils.md5Hex(input)).toUpperCase();
+ }
+ return checksum;
+ }
+
+ /**
+ * Check if string is empty or null.
+ *
+ * @param input Input String
+ * @return true if string is empty/null and false otherwise
+ */
+ public static boolean isEmpty(String input) {
+ return input == null || input.length() == 0;
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GroupType.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GroupType.java
new file mode 100644
index 0000000000..f68aaed410
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/GroupType.java
@@ -0,0 +1,26 @@
+/*-
+ * ============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.generator.data;
+
+public enum GroupType {
+ DEPLOYMENT,
+ OTHER
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/WidgetConfigurationUtil.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/WidgetConfigurationUtil.java
new file mode 100644
index 0000000000..dd68544a93
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/data/WidgetConfigurationUtil.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.generator.data;
+
+import java.util.Properties;
+
+public class WidgetConfigurationUtil {
+
+ private static Properties config ;
+
+ public static Properties getConfig() {
+ return config;
+ }
+
+ public static void setConfig(Properties config) {
+ WidgetConfigurationUtil.config = config;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/error/IllegalAccessException.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/error/IllegalAccessException.java
new file mode 100644
index 0000000000..06c4e6df31
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/error/IllegalAccessException.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.generator.error;
+
+public class IllegalAccessException extends RuntimeException {
+
+ public IllegalAccessException(String message) {
+ super(message);
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/ArtifactGenerator.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/ArtifactGenerator.java
new file mode 100644
index 0000000000..0c45436dc7
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/ArtifactGenerator.java
@@ -0,0 +1,35 @@
+/*-
+ * ============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.generator.intf;
+
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.data.GenerationData;
+
+import java.util.List;
+import java.util.Map;
+
+
+public interface ArtifactGenerator {
+
+ public GenerationData generateArtifact(List<Artifact> input,
+ Map<String, String> additionalParams);
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/Generator.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/Generator.java
new file mode 100644
index 0000000000..6ccf89cc72
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/intf/Generator.java
@@ -0,0 +1,40 @@
+/*-
+ * ============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.generator.intf;
+
+import org.openecomp.sdc.generator.data.ArtifactType;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Generator {
+
+ /**
+ * Artifact type artifact type.
+ *
+ * @return the artifact type
+ */
+ public ArtifactType artifactType();
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/ArtifactGeneratorLogResponseCode.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/ArtifactGeneratorLogResponseCode.java
new file mode 100644
index 0000000000..e0887876b8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/ArtifactGeneratorLogResponseCode.java
@@ -0,0 +1,68 @@
+/*-
+ * ============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.generator.logging;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum ArtifactGeneratorLogResponseCode {
+ INTERNAL_SERVER_ERROR(201),
+ MISSING_CONFIG_PROPERTIES_FILE(202),
+ MISSING_SYSTME_PROPERY_CONFIGURATION(203),
+ MANDATORY_ATTRIBUTE_MISSING(313),
+ SERVICE_TOSCA_MISSING(314),
+ INVALID_TOSCA_YAML(315),
+ INVALID_CLIENT_CONFIGURATION(316),
+ UNABLE_TO_GENERATE_ARTIFACT(317),
+ MISSING_WIDGET_CONFIGURATION(318),
+ INVALID_ID_VALUE(319),
+ MISSING_SERVICE_VERSION(320),
+ INVALID_SERVICE_VERSION(321),
+ MISSING_RESOURCE_VERSION(322),
+ INVALID_RESOURCE_VERSION(323),
+ MISSING_PRO_SERVICE(324),
+ MISSING_PRO_SERVICE_METADATA(325),
+ RESOURCE_TOSCA_MISSING(326);
+
+
+ private static Map<Integer, ArtifactGeneratorLogResponseCode> mapValueToEnum = new HashMap<>();
+
+ static {
+ for (ArtifactGeneratorLogResponseCode responseCode :
+ ArtifactGeneratorLogResponseCode.values()) {
+ mapValueToEnum.put(responseCode.value, responseCode);
+ }
+ }
+
+ private int value;
+
+ ArtifactGeneratorLogResponseCode(int value) {
+ this.value = value;
+ }
+
+ public static ArtifactGeneratorLogResponseCode parseValue(int value) {
+ return mapValueToEnum.get(value);
+ }
+
+ public int getValue() {
+ return value;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/CategoryLogLevel.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/CategoryLogLevel.java
new file mode 100644
index 0000000000..00a2e4d494
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/CategoryLogLevel.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.generator.logging;
+
+public enum CategoryLogLevel {
+ INFO,
+ WARN,
+ DEBUG,
+ ERROR,
+ FATAL
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/StatusCode.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/StatusCode.java
new file mode 100644
index 0000000000..201cb973be
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/StatusCode.java
@@ -0,0 +1,26 @@
+/*-
+ * ============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.generator.logging;
+
+public enum StatusCode {
+ COMPLETE,
+ ERROR
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Audit.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Audit.java
new file mode 100644
index 0000000000..9d32c1d1c0
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Audit.java
@@ -0,0 +1,34 @@
+/*-
+ * ============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.generator.logging.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates a method for auditing during artifact generation.
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Audit {
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Metrics.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Metrics.java
new file mode 100644
index 0000000000..74083a37f1
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/logging/annotations/Metrics.java
@@ -0,0 +1,35 @@
+/*-
+ * ============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.generator.logging.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates a method for metrics recording during artifact generation.
+ *
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Metrics {
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/service/ArtifactGenerationService.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/service/ArtifactGenerationService.java
new file mode 100644
index 0000000000..c94a851c85
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/java/org/openecomp/sdc/generator/service/ArtifactGenerationService.java
@@ -0,0 +1,80 @@
+/*-
+ * ============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.generator.service;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CATEGORY;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_DESCRIPTION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_PARTNER_NAME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.PARTNER_NAME;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.logging.CategoryLogLevel;
+import org.slf4j.MDC;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Artifact Generation Service interface.
+ */
+public interface ArtifactGenerationService {
+
+
+ /**
+ * Method to get artifact generation service implementation.
+ *
+ * @return Artifact generation implementation instance
+ */
+ public static ArtifactGenerationService lookup() {
+
+ Logger log = LoggerFactory.getLogger(ArtifactGenerationService.class.getName());
+ log.debug("Instantiating Artifact Generation Service");
+ try {
+ return ArtifactGenerationService.class.cast(
+ Class.forName("org.openecomp.sdc.generator.impl.ArtifactGenerationServiceImpl")
+ .newInstance());
+ } catch (Exception exception) {
+ MDC.put(PARTNER_NAME, GENERATOR_PARTNER_NAME);
+ MDC.put(ERROR_CATEGORY, CategoryLogLevel.ERROR.name());
+ MDC.put(ERROR_CODE, GENERATOR_ERROR_CODE);
+ MDC.put(ERROR_DESCRIPTION, GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED);
+ StringWriter sw = new StringWriter();
+ exception.printStackTrace(new PrintWriter(sw));
+ log.error(sw.toString());
+ }
+ log.debug(GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED);
+ return null;
+ }
+
+ public GenerationData generateArtifact(List<Artifact> input, String overridingConfiguration,
+ Map<String, String> additionalParams);
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v10.xsd b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v10.xsd
new file mode 100644
index 0000000000..7bc3466506
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v10.xsd
@@ -0,0 +1,6311 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xs:schema elementFormDefault="qualified" version="1.0"
+ targetNamespace="http://org.openecomp.aai.inventory/v10"
+ xmlns:tns="http://org.openecomp.aai.inventory/v10"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ jaxb:version="2.1"
+ xmlns:annox="http://annox.dev.java.net"
+ jaxb:extensionBindingPrefixes="annox">
+
+ <xs:element name="inventory-item-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory-item">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="inventory-item-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="inventory-item-link" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:inventory-item-data" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tagged-inventory-item-list">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:inventory-item" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="edge-tag-query-result">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="start-node-filter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="include-node-filter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="include-node-type" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="secondary-filter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="filter-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="edge-tag-query-request">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="edge-tag" type="xs:string" minOccurs="0"/>
+ <xs:element name="result-detail" type="xs:string" minOccurs="0"/>
+ <xs:element name="start-node-type" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:start-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:include-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:secondary-filter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="result-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="resource-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&amp;AI graph")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-link" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="search-results">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:result-data" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="relationship-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="relationship-key" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate an attribute.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="relationship-value" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value of the attribute.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="related-to-property">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="property-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="relationship">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="related-to" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate type of node.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="related-link" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to the object in A&amp;AI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-data" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:related-to-property" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="relationship-list">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:relationship" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="oam-network">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="network-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cvlan-tag" type="xs:unsignedInt">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cvlan-id")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="oam-networks">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:oam-network" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dvs-switch">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&amp;AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&amp;AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="switch-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vcenter-url" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dvs-switches">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:dvs-switch" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="availability-zone">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="availability-zone-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="hypervisor-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="az-and-dvs-switches">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+ <xs:element ref="tns:availability-zone" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sdn-zone-response">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:oam-networks" minOccurs="0"/>
+ <xs:element ref="tns:az-and-dvs-switches" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="search">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:edge-tag-query-result" minOccurs="0"/>
+ <xs:element ref="tns:edge-tag-query-request" minOccurs="0"/>
+ <xs:element ref="tns:search-results" minOccurs="0"/>
+ <xs:element ref="tns:sdn-zone-response" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="update-node-key">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="action-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="action">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="action-type" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:action-data" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="update">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="update-node-type" type="xs:string"/>
+ <xs:element ref="tns:update-node-key" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="update-node-uri" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:action" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="key-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="notify">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="event-id" type="xs:string"/>
+ <xs:element name="node-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="event-trigger" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:key-data" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="selflink" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="actions">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:update" minOccurs="0"/>
+ <xs:element ref="tns:notify" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-pool">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="target-pe" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="availability-zone-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ctag-pool-purpose" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ctag-values" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-pools">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:ctag-pool" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="complex">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="physical-location-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="data-center-code" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="complex-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="identity-url" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="physical-location-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="street1" type="xs:string"/>
+ <xs:element name="street2" type="xs:string" minOccurs="0"/>
+ <xs:element name="city" type="xs:string"/>
+ <xs:element name="state" type="xs:string" minOccurs="0"/>
+ <xs:element name="postal-code" type="xs:string"/>
+ <xs:element name="country" type="xs:string"/>
+ <xs:element name="region" type="xs:string"/>
+ <xs:element name="latitude" type="xs:string" minOccurs="0"/>
+ <xs:element name="longitude" type="xs:string" minOccurs="0"/>
+ <xs:element name="elevation" type="xs:string" minOccurs="0"/>
+ <xs:element name="lata" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:ctag-pools" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="complexes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:complex" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volume-group">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-name",dependentOn="cloud-region",container="volume-groups")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="volume-group-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="volume-group-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the volume group.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volume-groups">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:volume-group" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volume">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="volume-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="volume-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volumes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:volume" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-interface-ipv4-address-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="l3-interface-ipv4-address" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="l3-interface-ipv4-prefix-length" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-interface-ipv6-address-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="l3-interface-ipv6-address" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="l3-interface-ipv6-prefix-length" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vlan">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-id",uniqueProps="vpn-id",dependentOn="l-interface",container="vlans")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vlan-interface" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="backdoor-connection" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vlans">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:vlan" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sriov-vf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="pci-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-vlan-filter" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-mac-filter" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-vlan-strip" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-vlan-anti-spoof-check" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-mac-anti-spoof-check" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-mirrors" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-broadcast-allow" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-unknown-multicast-allow" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-unknown-unicast-allow" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-insert-stag" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-link-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sriov-vfs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:sriov-vf" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l-interface">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface",container="l-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="v6-wan-link-ip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="macaddr" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="MAC address for the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether A&amp;AI should be managing this interface of not. Could have value like CUSTOMER")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:vlans" minOccurs="0"/>
+ <xs:element ref="tns:sriov-vfs" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l-interfaces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:l-interface" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vserver">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-name,vserver-id,vserver-name2",dependentOn="tenant",container="vservers")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vserver-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vserver-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vserver-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vserver-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:volumes" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vservers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vserver" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tenant">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id",searchable="tenant-name,tenant-id",dependentOn="cloud-region",container="tenants")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="tenant-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="tenant-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Readable name of tenant")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:vservers" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tenants">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:tenant" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="flavor">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="flavor-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Flavor name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-vcpus" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of CPUs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-ram" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of memory")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-disk" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk space")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-ephemeral" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-swap" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-is-public" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-disabled" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="flavors">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:flavor" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="group-assignment">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",dependentOn="cloud-region",container="group-assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="group-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group description - description of the group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="group-assignments">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:group-assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="snapshot">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="snapshot-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Snapshot name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-architecture" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-os-distro" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-os-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prev-snapshot-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="snapshots">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:snapshot" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="metadatum">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="metaname" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="metaval" type="xs:string"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="metadata">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:metadatum" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="image">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="image-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Image name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-architecture" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-os-distro" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-os-version" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="images">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:image" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="availability-zones">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of availability zones")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:availability-zone" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cloud-region">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&amp;Ts OPENECOMP cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use OPENECOMP for AT&amp;T's OPENECOMP.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="cloud-owner" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name, e.g., OPENECOMP. First part of composite key should be formatted as vendor-cloudname")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-region-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="owner-defined-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., DCP, LCP)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-region-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Software version employed at the site")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="identity-url" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="complex-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:volume-groups" minOccurs="0"/>
+ <xs:element ref="tns:tenants" minOccurs="0"/>
+ <xs:element ref="tns:flavors" minOccurs="0"/>
+ <xs:element ref="tns:group-assignments" minOccurs="0"/>
+ <xs:element ref="tns:snapshots" minOccurs="0"/>
+ <xs:element ref="tns:images" minOccurs="0"/>
+ <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+ <xs:element ref="tns:oam-networks" minOccurs="0"/>
+ <xs:element ref="tns:availability-zones" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cloud-regions">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(maximumDepth="0")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:cloud-region" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-profile">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="nm-profile-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="community-string" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-profiles">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of network profiles")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:network-profile" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="p-interface">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="port-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-identifier" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="p-interfaces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:p-interface" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-interface">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpe,vpls-pe,pnf",container="lag-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate
+ target="field">@org.openecomp.aai.annotations.Metadata(description="Role
+ assigned to this Interface, should use values as defined in OPENECOMP Yang
+ models.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-interfaces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:lag-interface" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pserver">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="hostname" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ptnii-equip-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="PTNII name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="number-of-cpus" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of cpus")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="disk-in-gigabytes" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ram-in-megabytes" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-model" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pserver-selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="serial-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="inv-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pserver-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of Pserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="internet-topology" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pserver-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="alternative pserver name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="purpose" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="purpose of pserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pservers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:pserver" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="virtual-data-center">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vdc-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vdc-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="virtual-data-centers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:virtual-data-center" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cloud-infrastructure">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:complexes" minOccurs="0"/>
+ <xs:element ref="tns:cloud-regions" minOccurs="0"/>
+ <xs:element ref="tns:network-profiles" minOccurs="0"/>
+ <xs:element ref="tns:pservers" minOccurs="0"/>
+ <xs:element ref="tns:virtual-data-centers" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license-key-resource">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata
+ (nameProps="name",indexedProps="assignment-group-uuid,openecomp-uuid,name",uniqueProps="openecomp-uuid",container="license-key-resources",namespace="license-management")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="att-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="assignment-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="assignment-status" type="xs:string" minOccurs="0"/>
+ <xs:element name="assignment-group-uuid" type="xs:string"/>
+ <xs:element name="assignment-date" type="xs:string" minOccurs="0"/>
+ <xs:element name="name" type="xs:string" minOccurs="0"/>
+ <xs:element name="model-uuid" type="xs:string" minOccurs="0"/>
+ <xs:element name="model-version" type="xs:string" minOccurs="0"/>
+ <xs:element name="license-key" type="xs:string" minOccurs="0"/>
+ <xs:element name="license-key-file-url" type="xs:string" minOccurs="0"/>
+ <xs:element name="supplier-release-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license-key-resources">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:license-key-resource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license-management">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:license-key-resources" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="connector">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version",container="connectors",namespace="business")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="resource-instance-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="connectors">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:connector" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tunnel-xconnect">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan1" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan1" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan2" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan2" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tunnel-xconnects">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:tunnel-xconnect" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="allotted-resource">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,persona-model-id,persona-model-version",dependentOn="service-instance",container="allotted-resources")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:tunnel-xconnects" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="allotted-resources">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:allotted-resource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-instance">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-instance-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-instance-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-total" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan1" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan1" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vhn-portal-url" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operational status of the service-instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-instance-location-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ <xs:element ref="tns:allotted-resources" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-instances">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service instances")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service-instance" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-subscription">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across OPENECOMP.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="temp-ub-sub-account-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&amp;AI in the near future. Only stop gap solution.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:service-instances" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-subscriptions">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service-subscription" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="customer">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="subscriber-name,global-customer-id",uniqueProps="global-customer-id,subscriber-name",alternateKeys1="subscriber-name",container="customers",namespace="business")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="global-customer-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across OPENECOMP to uniquely identify customer.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="subscriber-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="subscriber-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:service-subscriptions" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="customers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:customer" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="business">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:connectors" minOccurs="0"/>
+ <xs:element ref="tns:customers" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnf-image">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,openecomp-uuid,application-vendor,application-version",uniqueProps="openecomp-uuid",container="vnf-images",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="att-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-vendor" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnf-images">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vnf-image" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-description" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description of the service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="service version")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="services">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-capability">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-capabilities">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service-capability" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="element-choice-set">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="element-choice-set-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="element-choice-set-name" type="xs:string"/>
+ <xs:element name="cardinality" type="xs:string" minOccurs="0"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:model-elements" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="element-choice-sets">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:element-choice-set" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="constrained-element-set">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="constrained-element-set-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="constraint-type" type="xs:string"/>
+ <xs:element name="check-type" type="xs:string"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:element-choice-sets" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="constrained-element-sets">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:constrained-element-set" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-constraint">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-constraint-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="constrained-element-set-uuid-to-replace" type="xs:string"/>
+ <xs:element ref="tns:constrained-element-sets" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-constraints">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:model-constraint" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-element">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-element-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="new-data-del-flag" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cardinality" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="linkage-points" minOccurs="0">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="linkage-point" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-elements" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-constraints" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-elements">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:model-element" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-ver">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-version-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-version" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Version")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-elements" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-vers">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:model-ver" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-invariant-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-vers" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="models">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:model" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="related-lookup">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="related-lookup-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="source-node-type" type="xs:string"/>
+ <xs:element name="source-node-property" type="xs:string"/>
+ <xs:element name="target-node-type" type="xs:string"/>
+ <xs:element name="target-node-property" type="xs:string"/>
+ <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="related-lookups">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:related-lookup" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="property-constraint">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="property-constraint-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="constraint-type" type="xs:string"/>
+ <xs:element name="property-name" type="xs:string"/>
+ <xs:element name="property-value" type="xs:string"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="property-constraints">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:property-constraint" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-query-element">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="named-query-element-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-limit-desc" type="xs:string" minOccurs="0"/>
+ <xs:element name="do-not-output" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+ <xs:element ref="tns:related-lookups" minOccurs="0"/>
+ <xs:element ref="tns:property-constraints" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-query-elements">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:named-query-element" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-query">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="named-query-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="named-query-name" type="xs:string"/>
+ <xs:element name="named-query-version" type="xs:string"/>
+ <xs:element name="required-input-params" minOccurs="0">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="required-input-param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="description" type="xs:string" minOccurs="0"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-queries">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:named-query" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-design-and-creation">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vnf-images" minOccurs="0"/>
+ <xs:element ref="tns:services" minOccurs="0"/>
+ <xs:element ref="tns:service-capabilities" minOccurs="0"/>
+ <xs:element ref="tns:models" minOccurs="0"/>
+ <xs:element ref="tns:named-queries" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="logical-link">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",nameProps="prov-status,circuit-id",container="logical-links",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="link-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ip-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be openecomp-ip-version)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="routing-protocol" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="For example, static or BGP")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of operational status of the logical link.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit id")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="purpose" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="logical-links">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical connections")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:logical-link" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="class-of-service">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="cos" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="probe-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="probe-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="classes-of-service">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="class-of-service of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:class-of-service" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pair">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="site-pair-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="source-ip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="destination-ip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ip-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="destination-hostname" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="destination-equip-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:classes-of-service" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pairs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="probe within a set")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:site-pair" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="routing-instance">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="routing-instance-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="rpm-owner" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rpm owner")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:site-pairs" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="routing-instances">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:routing-instance" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pair-set">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="site-pair-set-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:routing-instances" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pair-sets">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:site-pair-set" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpn-binding">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,global-route-target,vpn-type",searchable="vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vpn-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&amp;AI")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="VPN Name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="global-route-target" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number used to identify a VPN, globally unique in the network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-platform" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="route-distinguisher" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="route-target-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this route target")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpn-bindings">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:vpn-binding" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpls-pe">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="equipment-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpls-pes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vpls-pe" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="multicast-configuration">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="multicast-configuration-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="multicast-protocol" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="rp-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="multicast-configurations">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:multicast-configuration" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cvlan-tag-entry">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="cvlan-tag" type="xs:unsignedInt">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cvlan-tags">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:cvlan-tag-entry" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="port-group">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="port-group-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="port-group-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="switch-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:cvlan-tags" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="port-groups">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:port-group" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="licenses")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="group-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="licenses">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:license" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="entitlement">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="entitlements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="group-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="entitlements">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:entitlement" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vce">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Expect this to change as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpe-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="v6-vce-wan-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Entitlement resource uuid")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:port-groups" minOccurs="0"/>
+ <xs:element ref="tns:licenses" minOccurs="0"/>
+ <xs:element ref="tns:entitlements" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vce" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpe">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Relationship-list must include related to info for complex.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vpes",namespace="network",extendsFrom="vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gateway address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="v4-loopback0-ip-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="as-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VPE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="summary-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the vpe operation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether vpe access uses SSH")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:licenses" minOccurs="0"/>
+ <xs:element ref="tns:entitlements" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual provider edge router. In 1504, A&amp;AI will populate this object through an M&amp;P and tool provided to operations.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vpe" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnfc">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation",searchable="vnfc-name",container="vnfcs",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnfc-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnfc-function-code" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="function code")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnfc-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-oam-vip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-notation" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnfcs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vnfc" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="subnet">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="subnet-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="subnet-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="gateway-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="gateway ip address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-start-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network start address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cidr-mask" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cidr mask")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ip-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dhcp-enabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dhcp-start" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dhcp-end" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="subnets">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:subnet" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-assignment">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="id.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-assignments">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:ctag-assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="segmentation-assignment">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="segmentation-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="segmentation-assignments">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:segmentation-assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-network">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-name",uniqueProps="network-id",container="l3-networks",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="network-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&amp;AI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-technology" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-bound-to-vpn" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-role-instance" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network role instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="contrail-network-fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="physical-network-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-provider-network" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-shared-network" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-external-network" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:subnets" minOccurs="0"/>
+ <xs:element ref="tns:ctag-assignments" minOccurs="0"/>
+ <xs:element ref="tns:segmentation-assignments" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-networks">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:l3-network" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-policy">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="network-policy-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-policy-fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-policies">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:network-policy" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vf-module">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-name",dependentOn="generic-vnf",container="vf-modules")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vf-module-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-module-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vf-module")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-base-vf-module" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="contrail-service-instance-fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vf-modules">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vf-module" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="generic-vnf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate
+ target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by OPENECOMP or customer")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="nm-lan-v6-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 Loopback address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-v6-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 management address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vcpu" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vcpu-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vmemory" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vmemory-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vdisk" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vdisk-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="summary-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="entitlement-assignment-group-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the specific entitlement resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-assignment-group-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the license assignment group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the actual license resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="as-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VNF")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-subzone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:vf-modules" minOccurs="0"/>
+ <xs:element ref="tns:licenses" minOccurs="0"/>
+ <xs:element ref="tns:entitlements" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="generic-vnfs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VNFs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:generic-vnf" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-link">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="link-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-links">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:lag-link" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="newvce">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id2" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="newvces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:newvce" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pnf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an OPENECOMP node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="pnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pnf-name2-source" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="source of name2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pnf-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="id of pnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-model" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by OPENECOMP or customer")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-oam" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="sw-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration-status is the status of orchestration on the PNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="frame-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="serial-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number of the device")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="inv-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pnfs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:pnf" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="physical-link">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="link-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit it")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dual-mode" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&amp;AI or 3rd party transport provider")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-provider-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="physical-links">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:physical-link" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vig-server">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vig-address-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vig-servers">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:vig-server" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ipsec-configuration">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ipsec-configuration-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-vig-address-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-encryption-strength" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-dmz-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="OPENECOMP can offer a shared DMZ or a DMZ specific to a customer")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="shared-dmz-network-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-customer-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ike-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="can be 1 or 2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-authentication" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-encryption" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-dh-group" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-am-group-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-am-password" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-sa-lifetime" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-authentication" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-encryption" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-sa-lifetime" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-pfs" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="enable PFS or not")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="xauth-userid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="xauth-user-password" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dpd-interval" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The time between DPD probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dpd-frequency" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:vig-servers" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ipsec-configurations">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:ipsec-configuration" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="route-table-reference">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="route-table-reference-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="route-table-reference-fqdn" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="route-table-references">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:route-table-reference" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-group">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="description" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="sub-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-groups">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:instance-group" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:logical-links" minOccurs="0"/>
+ <xs:element ref="tns:site-pair-sets" minOccurs="0"/>
+ <xs:element ref="tns:vpn-bindings" minOccurs="0"/>
+ <xs:element ref="tns:vpls-pes" minOccurs="0"/>
+ <xs:element ref="tns:multicast-configurations" minOccurs="0"/>
+ <xs:element ref="tns:vces" minOccurs="0"/>
+ <xs:element ref="tns:vpes" minOccurs="0"/>
+ <xs:element ref="tns:vnfcs" minOccurs="0"/>
+ <xs:element ref="tns:l3-networks" minOccurs="0"/>
+ <xs:element ref="tns:network-policies" minOccurs="0"/>
+ <xs:element ref="tns:generic-vnfs" minOccurs="0"/>
+ <xs:element ref="tns:lag-links" minOccurs="0"/>
+ <xs:element ref="tns:newvces" minOccurs="0"/>
+ <xs:element ref="tns:pnfs" minOccurs="0"/>
+ <xs:element ref="tns:physical-links" minOccurs="0"/>
+ <xs:element ref="tns:ipsec-configurations" minOccurs="0"/>
+ <xs:element ref="tns:route-table-references" minOccurs="0"/>
+ <xs:element ref="tns:instance-groups" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="reserved-prop-names">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="last-mod-source-of-truth" type="xs:string" minOccurs="0"/>
+ <xs:element name="aai-node-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="aai-created-ts" type="xs:unsignedInt" minOccurs="0"/>
+ <xs:element name="aai-unique-key" type="xs:string" minOccurs="0"/>
+ <xs:element name="aai-last-mod-ts" type="xs:unsignedInt" minOccurs="0"/>
+ <xs:element name="source-of-truth" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="edge-prop-names">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="edgeLabel" type="xs:string" minOccurs="0"/>
+ <xs:element name="direction" type="xs:string" minOccurs="0"/>
+ <xs:element name="multiplicityRule" type="xs:string" minOccurs="0"/>
+ <xs:element name="isParent" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="usesResource" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="hasDelTarget" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="SVC-INFRA" type="xs:string" minOccurs="0"/>
+ <xs:element name="SVC-INFRA-REV" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="aai-internal">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:reserved-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:edge-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:search" minOccurs="0"/>
+ <xs:element ref="tns:actions" minOccurs="0"/>
+ <xs:element ref="tns:cloud-infrastructure" minOccurs="0"/>
+ <xs:element ref="tns:license-management" minOccurs="0"/>
+ <xs:element ref="tns:business" minOccurs="0"/>
+ <xs:element ref="tns:service-design-and-creation" minOccurs="0"/>
+ <xs:element ref="tns:network" minOccurs="0"/>
+ <xs:element ref="tns:aai-internal" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="notification-event-header">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string" minOccurs="0"/>
+ <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
+ <xs:element name="source-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="domain" type="xs:string" minOccurs="0"/>
+ <xs:element name="sequence-number" type="xs:string" minOccurs="0"/>
+ <xs:element name="severity" type="xs:string" minOccurs="0"/>
+ <xs:element name="event-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="version" type="xs:string" minOccurs="0"/>
+ <xs:element name="action" type="xs:string" minOccurs="0"/>
+ <xs:element name="entity-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="top-entity-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="entity-link" type="xs:string" minOccurs="0"/>
+ <xs:element name="status" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="notification-event">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="cambria.partition" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:notification-event-header" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="query-parameters">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:named-query" minOccurs="0"/>
+ <xs:element ref="tns:model" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-filter">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-filters">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:instance-filter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-and-named-query-search">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:query-parameters" minOccurs="0"/>
+ <xs:element ref="tns:instance-filters" minOccurs="0"/>
+ <xs:element name="top-node-type" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="properties">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="extra-properties">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory-response-item">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-name" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:extra-properties" minOccurs="0"/>
+ <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory-response-items">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:inventory-response-item" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="response-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="extra-property">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,vpe,generic-vnf",isAbstract="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v9.xsd b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v9.xsd
new file mode 100644
index 0000000000..c73c583679
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/src/main/resources/aai_schema_v9.xsd
@@ -0,0 +1,6303 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="http://org.openecomp.aai.inventory/v9" xmlns:tns="http://org.openecomp.aai.inventory/v9" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ jaxb:version="2.1"
+ xmlns:annox="http://annox.dev.java.net"
+ jaxb:extensionBindingPrefixes="annox">
+
+ <xs:element name="inventory-item-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory-item">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="inventory-item-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="inventory-item-link" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:inventory-item-data" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tagged-inventory-item-list">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:inventory-item" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="edge-tag-query-result">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="start-node-filter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="include-node-filter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="include-node-type" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="secondary-filter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="filter-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="edge-tag-query-request">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="edge-tag" type="xs:string" minOccurs="0"/>
+ <xs:element name="result-detail" type="xs:string" minOccurs="0"/>
+ <xs:element name="start-node-type" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:start-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:include-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:secondary-filter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="result-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="resource-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&amp;AI graph")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-link" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="search-results">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:result-data" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="relationship-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="relationship-key" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate an attribute.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="relationship-value" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value of the attribute.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="related-to-property">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="property-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="relationship">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="related-to" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate type of node.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="related-link" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to the object in A&amp;AI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-data" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:related-to-property" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="relationship-list">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:relationship" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="oam-network">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="network-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cvlan-tag" type="xs:unsignedInt">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cvlan-id")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="oam-networks">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:oam-network" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dvs-switch">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&amp;AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&amp;AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="switch-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vcenter-url" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dvs-switches">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:dvs-switch" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="availability-zone">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="availability-zone-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="hypervisor-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="az-and-dvs-switches">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+ <xs:element ref="tns:availability-zone" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sdn-zone-response">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:oam-networks" minOccurs="0"/>
+ <xs:element ref="tns:az-and-dvs-switches" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="search">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:edge-tag-query-result" minOccurs="0"/>
+ <xs:element ref="tns:edge-tag-query-request" minOccurs="0"/>
+ <xs:element ref="tns:search-results" minOccurs="0"/>
+ <xs:element ref="tns:sdn-zone-response" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="update-node-key">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="action-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="action">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="action-type" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:action-data" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="update">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="update-node-type" type="xs:string"/>
+ <xs:element ref="tns:update-node-key" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="update-node-uri" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:action" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="key-data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="notify">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="event-id" type="xs:string"/>
+ <xs:element name="node-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="event-trigger" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:key-data" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="selflink" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="actions">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:update" minOccurs="0"/>
+ <xs:element ref="tns:notify" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-pool">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="target-pe" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="availability-zone-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ctag-pool-purpose" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ctag-values" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-pools">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:ctag-pool" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="complex">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="physical-location-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="data-center-code" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="complex-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="identity-url" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="physical-location-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="street1" type="xs:string"/>
+ <xs:element name="street2" type="xs:string" minOccurs="0"/>
+ <xs:element name="city" type="xs:string"/>
+ <xs:element name="state" type="xs:string" minOccurs="0"/>
+ <xs:element name="postal-code" type="xs:string"/>
+ <xs:element name="country" type="xs:string"/>
+ <xs:element name="region" type="xs:string"/>
+ <xs:element name="latitude" type="xs:string" minOccurs="0"/>
+ <xs:element name="longitude" type="xs:string" minOccurs="0"/>
+ <xs:element name="elevation" type="xs:string" minOccurs="0"/>
+ <xs:element name="lata" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:ctag-pools" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="complexes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:complex" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volume-group">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-name",dependentOn="cloud-region",container="volume-groups")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="volume-group-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="volume-group-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the volume group.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volume-groups">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:volume-group" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volume">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="volume-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="volume-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="volumes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:volume" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-interface-ipv4-address-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="l3-interface-ipv4-address" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="l3-interface-ipv4-prefix-length" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-interface-ipv6-address-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="l3-interface-ipv6-address" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="l3-interface-ipv6-prefix-length" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vlan">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-id",uniqueProps="vpn-id",dependentOn="l-interface",container="vlans")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vlan-interface" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="backdoor-connection" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vlans">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:vlan" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sriov-vf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="pci-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-vlan-filter" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-mac-filter" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-vlan-strip" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-vlan-anti-spoof-check" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-mac-anti-spoof-check" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-mirrors" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-broadcast-allow" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-unknown-multicast-allow" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-unknown-unicast-allow" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-insert-stag" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-link-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sriov-vfs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:sriov-vf" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l-interface">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface",container="l-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="v6-wan-link-ip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="macaddr" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="MAC address for the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether A&amp;AI should be managing this interface of not. Could have value like CUSTOMER")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:vlans" minOccurs="0"/>
+ <xs:element ref="tns:sriov-vfs" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l-interfaces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:l-interface" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vserver">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-name,vserver-id,vserver-name2",dependentOn="tenant",container="vservers")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vserver-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vserver-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vserver-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vserver-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:volumes" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vservers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vserver" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tenant">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id",searchable="tenant-name,tenant-id",dependentOn="cloud-region",container="tenants")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="tenant-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="tenant-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Readable name of tenant")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:vservers" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tenants">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:tenant" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="flavor">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="flavor-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Flavor name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-vcpus" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of CPUs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-ram" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of memory")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-disk" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk space")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-ephemeral" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-swap" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-is-public" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="flavor-disabled" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="flavors">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:flavor" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="group-assignment">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",dependentOn="cloud-region",container="group-assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="group-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group description - description of the group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="group-assignments">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:group-assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="snapshot">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="snapshot-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Snapshot name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-architecture" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-os-distro" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-os-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="snapshot-selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prev-snapshot-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="snapshots">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:snapshot" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="metadatum">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="metaname" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="metaval" type="xs:string"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="metadata">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:metadatum" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="image">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="image-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Image name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-architecture" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-os-distro" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-os-version" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="image-selflink" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="images">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:image" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="availability-zones">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of availability zones")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:availability-zone" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cloud-region">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&amp;Ts openecomp cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use openecomp-openecomp for AT&amp;T's openecomp.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="cloud-owner" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name, e.g., openecomp-openecomp. First part of composite key should be formatted as vendor-cloudname")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-region-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="owner-defined-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., DCP, LCP)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-region-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Software version employed at the site")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="identity-url" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cloud-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="complex-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:volume-groups" minOccurs="0"/>
+ <xs:element ref="tns:tenants" minOccurs="0"/>
+ <xs:element ref="tns:flavors" minOccurs="0"/>
+ <xs:element ref="tns:group-assignments" minOccurs="0"/>
+ <xs:element ref="tns:snapshots" minOccurs="0"/>
+ <xs:element ref="tns:images" minOccurs="0"/>
+ <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+ <xs:element ref="tns:oam-networks" minOccurs="0"/>
+ <xs:element ref="tns:availability-zones" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cloud-regions">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(maximumDepth="0")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:cloud-region" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-profile">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="nm-profile-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="community-string" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-profiles">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of network profiles")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:network-profile" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="p-interface">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="port-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-identifier" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="p-interfaces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:p-interface" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-interface">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpe,vpls-pe,pnf",container="lag-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-interfaces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:lag-interface" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pserver">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="hostname" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ptnii-equip-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="PTNII name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="number-of-cpus" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of cpus")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="disk-in-gigabytes" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ram-in-megabytes" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-model" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pserver-selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="serial-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="inv-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pserver-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of Pserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="internet-topology" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pserver-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="alternative pserver name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="purpose" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="purpose of pserver")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pservers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:pserver" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="virtual-data-center">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vdc-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vdc-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="virtual-data-centers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:virtual-data-center" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cloud-infrastructure">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:complexes" minOccurs="0"/>
+ <xs:element ref="tns:cloud-regions" minOccurs="0"/>
+ <xs:element ref="tns:network-profiles" minOccurs="0"/>
+ <xs:element ref="tns:pservers" minOccurs="0"/>
+ <xs:element ref="tns:virtual-data-centers" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license-key-resource">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(nameProps="name",indexedProps="assignment-group-uuid,openecomp-uuid,name",uniqueProps="openecomp-uuid",container="license-key-resources",namespace="license-management")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="att-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="assignment-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="assignment-status" type="xs:string" minOccurs="0"/>
+ <xs:element name="assignment-group-uuid" type="xs:string"/>
+ <xs:element name="assignment-date" type="xs:string" minOccurs="0"/>
+ <xs:element name="name" type="xs:string" minOccurs="0"/>
+ <xs:element name="model-uuid" type="xs:string" minOccurs="0"/>
+ <xs:element name="model-version" type="xs:string" minOccurs="0"/>
+ <xs:element name="license-key" type="xs:string" minOccurs="0"/>
+ <xs:element name="license-key-file-url" type="xs:string" minOccurs="0"/>
+ <xs:element name="supplier-release-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license-key-resources">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:license-key-resource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license-management">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:license-key-resources" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="connector">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version",container="connectors",namespace="business")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="resource-instance-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="connectors">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:connector" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tunnel-xconnect">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan1" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan1" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan2" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan2" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tunnel-xconnects">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:tunnel-xconnect" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="allotted-resource">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,persona-model-id,persona-model-version",dependentOn="service-instance",container="allotted-resources")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:tunnel-xconnects" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="allotted-resources">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:allotted-resource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-instance">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-instance-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-instance-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-total" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan1" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan1" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-up-wan2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="bandwidth-down-wan2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vhn-portal-url" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operational status of the service-instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-instance-location-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ <xs:element ref="tns:allotted-resources" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-instances">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service instances")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service-instance" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-subscription">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across OPENECOMP.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="temp-ub-sub-account-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&amp;AI in the near future. Only stop gap solution.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:service-instances" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-subscriptions">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service-subscription" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="customer">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="subscriber-name,global-customer-id",uniqueProps="global-customer-id,subscriber-name",alternateKeys1="subscriber-name",container="customers",namespace="business")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="global-customer-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across OPENECOMP to uniquely identify customer.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="subscriber-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="subscriber-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:service-subscriptions" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="customers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:customer" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="business">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:connectors" minOccurs="0"/>
+ <xs:element ref="tns:customers" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnf-image">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,openecomp-uuid,application-vendor,application-version",uniqueProps="openecomp-uuid",container="vnf-images",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="att-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-vendor" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="application-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnf-images">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vnf-image" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-description" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description of the service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-selflink" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="service version")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="services">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-capability">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="service-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-capabilities">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:service-capability" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="element-choice-set">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="element-choice-set-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="element-choice-set-name" type="xs:string"/>
+ <xs:element name="cardinality" type="xs:string" minOccurs="0"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:model-elements" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="element-choice-sets">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:element-choice-set" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="constrained-element-set">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="constrained-element-set-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="constraint-type" type="xs:string"/>
+ <xs:element name="check-type" type="xs:string"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:element-choice-sets" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="constrained-element-sets">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:constrained-element-set" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-constraint">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-constraint-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="constrained-element-set-uuid-to-replace" type="xs:string"/>
+ <xs:element ref="tns:constrained-element-sets" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-constraints">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:model-constraint" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-element">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-element-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="new-data-del-flag" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cardinality" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="linkage-points" minOccurs="0">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="linkage-point" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-elements" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-constraints" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-elements">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:model-element" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-ver">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-version-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-version" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Version")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-description" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-elements" minOccurs="0"/>
+ <xs:element ref="tns:metadata" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-vers">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:model-ver" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-invariant-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="model-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:model-vers" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="models">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:model" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="related-lookup">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="related-lookup-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="source-node-type" type="xs:string"/>
+ <xs:element name="source-node-property" type="xs:string"/>
+ <xs:element name="target-node-type" type="xs:string"/>
+ <xs:element name="target-node-property" type="xs:string"/>
+ <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="related-lookups">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:related-lookup" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="property-constraint">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="property-constraint-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="constraint-type" type="xs:string"/>
+ <xs:element name="property-name" type="xs:string"/>
+ <xs:element name="property-value" type="xs:string"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="property-constraints">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:property-constraint" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-query-element">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="named-query-element-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-limit-desc" type="xs:string" minOccurs="0"/>
+ <xs:element name="do-not-output" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+ <xs:element ref="tns:related-lookups" minOccurs="0"/>
+ <xs:element ref="tns:property-constraints" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-query-elements">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:named-query-element" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-query">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="named-query-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="named-query-name" type="xs:string"/>
+ <xs:element name="named-query-version" type="xs:string"/>
+ <xs:element name="required-input-params" minOccurs="0">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="required-input-param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="description" type="xs:string" minOccurs="0"/>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="named-queries">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:named-query" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service-design-and-creation">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vnf-images" minOccurs="0"/>
+ <xs:element ref="tns:services" minOccurs="0"/>
+ <xs:element ref="tns:service-capabilities" minOccurs="0"/>
+ <xs:element ref="tns:models" minOccurs="0"/>
+ <xs:element ref="tns:named-queries" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="logical-link">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",nameProps="prov-status,circuit-id",container="logical-links",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="link-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ip-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be openecomp-ip-version)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="routing-protocol" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="For example, static or BGP")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of operational status of the logical link.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="link-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit id")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="purpose" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="logical-links">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical connections")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:logical-link" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="class-of-service">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="cos" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="probe-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="probe-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="classes-of-service">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="class-of-service of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:class-of-service" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pair">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="site-pair-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="source-ip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="destination-ip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ip-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="destination-hostname" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="destination-equip-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:classes-of-service" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pairs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="probe within a set")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:site-pair" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="routing-instance">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="routing-instance-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="rpm-owner" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rpm owner")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:site-pairs" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="routing-instances">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:routing-instance" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pair-set">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="site-pair-set-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:routing-instances" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="site-pair-sets">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:site-pair-set" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpn-binding">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,global-route-target,vpn-type",searchable="vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vpn-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&amp;AI")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="VPN Name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="global-route-target" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number used to identify a VPN, globally unique in the network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-platform" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpn-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="route-distinguisher" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="route-target-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this route target")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpn-bindings">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:vpn-binding" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpls-pe">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="equipment-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpls-pes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vpls-pe" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="multicast-configuration">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="multicast-configuration-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="multicast-protocol" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="rp-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="multicast-configurations">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:multicast-configuration" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cvlan-tag-entry">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="cvlan-tag" type="xs:unsignedInt">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cvlan-tags">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:cvlan-tag-entry" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="port-group">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="interface-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="interface-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="port-group-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="port-group-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="switch-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:cvlan-tags" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="port-groups">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:port-group" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="license">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="licenses")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="group-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="licenses">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:license" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="entitlement">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="entitlements")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="group-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-uuid" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="entitlements">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:entitlement" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vce">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Expect this to change as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vpe-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="v6-vce-wan-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Entitlement resource uuid")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:port-groups" minOccurs="0"/>
+ <xs:element ref="tns:licenses" minOccurs="0"/>
+ <xs:element ref="tns:entitlements" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vce" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpe">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Relationship-list must include related to info for complex.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vpes",namespace="network",extendsFrom="vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gateway address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="v4-loopback0-ip-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="as-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VPE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="summary-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the vpe operation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether vpe access uses SSH")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:licenses" minOccurs="0"/>
+ <xs:element ref="tns:entitlements" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vpes">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual provider edge router. In 1504, A&amp;AI will populate this object through an M&amp;P and tool provided to operations.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vpe" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnfc">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation",searchable="vnfc-name",container="vnfcs",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnfc-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnfc-function-code" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="function code")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnfc-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-oam-vip" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="group-notation" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnfcs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vnfc" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="subnet">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="subnet-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="subnet-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="gateway-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="gateway ip address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-start-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network start address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="cidr-mask" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cidr mask")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ip-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dhcp-enabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dhcp-start" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dhcp-end" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="subnets">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:subnet" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-assignment">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vlan-id-inner" type="xs:unsignedInt">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="id.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctag-assignments">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:ctag-assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="segmentation-assignment">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="segmentation-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="segmentation-assignments">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:segmentation-assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-network">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-name",uniqueProps="network-id",container="l3-networks",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="network-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&amp;AI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-technology" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-bound-to-vpn" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-role-instance" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network role instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="contrail-network-fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="physical-network-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-provider-network" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-shared-network" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-external-network" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:subnets" minOccurs="0"/>
+ <xs:element ref="tns:ctag-assignments" minOccurs="0"/>
+ <xs:element ref="tns:segmentation-assignments" minOccurs="0"/>
+ <xs:element ref="tns:relationship-list" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="l3-networks">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:l3-network" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-policy">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="network-policy-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="network-policy-fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network-policies">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:network-policy" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vf-module">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-name",dependentOn="generic-vnf",container="vf-modules")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vf-module-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vf-module-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vf-module")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-base-vf-module" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="contrail-service-instance-fqdn" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vf-modules">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:vf-module" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="generic-vnf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by openecomp or customer")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="nm-lan-v6-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 Loopback address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-v6-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 management address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vcpu" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vcpu-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vmemory" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vmemory-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vdisk" type="xs:unsignedInt" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vdisk-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="summary-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="entitlement-assignment-group-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the specific entitlement resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-assignment-group-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the license assignment group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key-uuid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the actual license resource")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="as-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VNF")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="regional-resource-subzone" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:vf-modules" minOccurs="0"/>
+ <xs:element ref="tns:licenses" minOccurs="0"/>
+ <xs:element ref="tns:entitlements" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="generic-vnfs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VNFs")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:generic-vnf" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-link">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="link-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lag-links">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:lag-link" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="newvce">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id2" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vnf-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="prov-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="operational-state" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="license-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPE.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="newvces">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:newvce" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pnf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an openecomp node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="pnf-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pnf-name2" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pnf-name2-source" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="source of name2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="pnf-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="id of pnf")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="equip-model" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by openecomp or customer")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-oam" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="sw-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration-status is the status of orchestration on the PNF.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="in-maint" type="xs:boolean">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="frame-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="serial-number" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number of the device")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="inv-status" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+ <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pnfs">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:pnf" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="physical-link">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="link-name" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-value" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="speed-units" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit it")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dual-mode" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="management-option" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&amp;AI or 3rd party transport provider")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="service-provider-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="physical-links">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:physical-link" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vig-server">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vig-address-type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v4-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipaddress-v6-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vig-servers">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:vig-server" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ipsec-configuration">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ipsec-configuration-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-vig-address-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-encryption-strength" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-dmz-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="openecomp can offer a shared DMZ or a DMZ specific to a customer")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="shared-dmz-network-address" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="requested-customer-name" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ike-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="can be 1 or 2")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-authentication" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-encryption" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-dh-group" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-am-group-id" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-am-password" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ikev1-sa-lifetime" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-authentication" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-encryption" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-sa-lifetime" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ipsec-pfs" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="enable PFS or not")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="xauth-userid" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="xauth-user-password" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dpd-interval" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The time between DPD probe")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dpd-frequency" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ <xs:element ref="tns:vig-servers" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ipsec-configurations">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:ipsec-configuration" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="route-table-reference">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="route-table-reference-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="route-table-reference-fqdn" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="route-table-references">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:route-table-reference" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-group">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="description" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="type" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="sub-type" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="resource-version" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="tns:relationship-list" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-groups">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:instance-group" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="network">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:logical-links" minOccurs="0"/>
+ <xs:element ref="tns:site-pair-sets" minOccurs="0"/>
+ <xs:element ref="tns:vpn-bindings" minOccurs="0"/>
+ <xs:element ref="tns:vpls-pes" minOccurs="0"/>
+ <xs:element ref="tns:multicast-configurations" minOccurs="0"/>
+ <xs:element ref="tns:vces" minOccurs="0"/>
+ <xs:element ref="tns:vpes" minOccurs="0"/>
+ <xs:element ref="tns:vnfcs" minOccurs="0"/>
+ <xs:element ref="tns:l3-networks" minOccurs="0"/>
+ <xs:element ref="tns:network-policies" minOccurs="0"/>
+ <xs:element ref="tns:generic-vnfs" minOccurs="0"/>
+ <xs:element ref="tns:lag-links" minOccurs="0"/>
+ <xs:element ref="tns:newvces" minOccurs="0"/>
+ <xs:element ref="tns:pnfs" minOccurs="0"/>
+ <xs:element ref="tns:physical-links" minOccurs="0"/>
+ <xs:element ref="tns:ipsec-configurations" minOccurs="0"/>
+ <xs:element ref="tns:route-table-references" minOccurs="0"/>
+ <xs:element ref="tns:instance-groups" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="reserved-prop-names">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="last-mod-source-of-truth" type="xs:string" minOccurs="0"/>
+ <xs:element name="aai-node-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="aai-created-ts" type="xs:unsignedInt" minOccurs="0"/>
+ <xs:element name="aai-unique-key" type="xs:string" minOccurs="0"/>
+ <xs:element name="aai-last-mod-ts" type="xs:unsignedInt" minOccurs="0"/>
+ <xs:element name="source-of-truth" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="edge-prop-names">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="edgeLabel" type="xs:string" minOccurs="0"/>
+ <xs:element name="direction" type="xs:string" minOccurs="0"/>
+ <xs:element name="multiplicityRule" type="xs:string" minOccurs="0"/>
+ <xs:element name="isParent" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="usesResource" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="hasDelTarget" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="SVC-INFRA" type="xs:string" minOccurs="0"/>
+ <xs:element name="SVC-INFRA-REV" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="aai-internal">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:reserved-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tns:edge-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:search" minOccurs="0"/>
+ <xs:element ref="tns:actions" minOccurs="0"/>
+ <xs:element ref="tns:cloud-infrastructure" minOccurs="0"/>
+ <xs:element ref="tns:license-management" minOccurs="0"/>
+ <xs:element ref="tns:business" minOccurs="0"/>
+ <xs:element ref="tns:service-design-and-creation" minOccurs="0"/>
+ <xs:element ref="tns:network" minOccurs="0"/>
+ <xs:element ref="tns:aai-internal" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="notification-event-header">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="id" type="xs:string" minOccurs="0"/>
+ <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
+ <xs:element name="source-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="domain" type="xs:string" minOccurs="0"/>
+ <xs:element name="sequence-number" type="xs:string" minOccurs="0"/>
+ <xs:element name="severity" type="xs:string" minOccurs="0"/>
+ <xs:element name="event-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="version" type="xs:string" minOccurs="0"/>
+ <xs:element name="action" type="xs:string" minOccurs="0"/>
+ <xs:element name="entity-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="top-entity-type" type="xs:string" minOccurs="0"/>
+ <xs:element name="entity-link" type="xs:string" minOccurs="0"/>
+ <xs:element name="status" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="notification-event">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="cambria.partition" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:notification-event-header" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="query-parameters">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:named-query" minOccurs="0"/>
+ <xs:element ref="tns:model" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-filter">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="instance-filters">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:instance-filter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="model-and-named-query-search">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:query-parameters" minOccurs="0"/>
+ <xs:element ref="tns:instance-filters" minOccurs="0"/>
+ <xs:element name="top-node-type" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="properties">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="extra-properties">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory-response-item">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="model-name" type="xs:string" minOccurs="0"/>
+ <xs:element ref="tns:extra-properties" minOccurs="0"/>
+ <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="inventory-response-items">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:inventory-response-item" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="response-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="extra-property">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vnf">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,vpe,generic-vnf",isAbstract="true")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="vnf-id" type="xs:string">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/pom.xml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/pom.xml
new file mode 100644
index 0000000000..70dd0107ad
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/pom.xml
@@ -0,0 +1,125 @@
+<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-artifact-generator-core</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-core</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.10</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-core</artifactId>
+ <version>${logback.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>${commons.codec.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.reflections</groupId>
+ <artifactId>reflections</artifactId>
+ <version>${org.reflections.version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${mvn.surefire.version}</version>
+ <configuration>
+ <systemPropertyVariables>
+ <artifactgenerator.config>${project.basedir}/src/test/resources/config/Artifact-Generator.properties</artifactgenerator.config>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>aspectj-maven-plugin</artifactId>
+ <version>1.8</version>
+ <!-- new configuration is here -->
+ <configuration>
+ <complianceLevel>1.8</complianceLevel>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>compile</goal>
+ <goal>test-compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>aspectj-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorManager.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorManager.java
new file mode 100644
index 0000000000..2d50826dee
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorManager.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.sdc.generator;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.logError;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.data.ArtifactType;
+import org.openecomp.sdc.generator.data.GeneratorConfiguration;
+import org.openecomp.sdc.generator.intf.ArtifactGenerator;
+import org.openecomp.sdc.generator.intf.Generator;
+import org.reflections.Reflections;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class GeneratorManager {
+
+ private static Logger log = LoggerFactory.getLogger(GeneratorManager.class.getName());
+ private static Map<ArtifactType, ArtifactGenerator> generators = new HashMap<>();
+
+ /**
+ * Gets active artifact generators.
+ *
+ * @param clientConfiguration the client configuration
+ * @return the active artifact generators
+ * @throws Exception the exception
+ */
+ public static List<ArtifactGenerator> getActiveArtifactGenerators(String clientConfiguration)
+ throws Exception {
+
+ if (generators.isEmpty()) {
+ log.debug("Getting list of active generators");
+ Reflections reflections = new Reflections("org.openecomp.sdc.generator");
+ Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(Generator.class);
+ for (Class<?> clazz : annotated) {
+ Generator generator = clazz.getAnnotation(Generator.class);
+ generators.put(generator.artifactType(), (ArtifactGenerator) clazz.newInstance());
+ }
+ }
+
+ log.debug("Parsing generator configuration from the client configuration : "
+ + clientConfiguration);
+ GeneratorConfiguration gf = getGeneratorConfiguration(clientConfiguration);
+ List<ArtifactGenerator> generatorList = new ArrayList<>();
+ if (gf.getArtifactTypes() != null && !gf.getArtifactTypes().isEmpty()) {
+ for (ArtifactType type : gf.getArtifactTypes()) {
+ if (generators.get(type) != null) {
+ generatorList.add(generators.get(type));
+ }
+ }
+ }
+
+ return generatorList;
+ }
+
+ private static GeneratorConfiguration getGeneratorConfiguration(String jsonConfiguration) {
+ try {
+ return new ObjectMapper().readValue(jsonConfiguration, GeneratorConfiguration.class);
+ } catch (Exception exception) {
+ logError(GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION, exception);
+ throw new IllegalArgumentException(
+ GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION, exception);
+ }
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorTask.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorTask.java
new file mode 100644
index 0000000000..beb8f2d576
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/GeneratorTask.java
@@ -0,0 +1,74 @@
+/*-
+ * ============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.generator;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.intf.ArtifactGenerator;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.RecursiveTask;
+
+public class GeneratorTask extends RecursiveTask<GenerationData> {
+
+ private static Logger log = LoggerFactory.getLogger(GeneratorTask.class.getName());
+
+ List<Artifact> input;
+ List<ArtifactGenerator> generators;
+ Map<String, String> additionalParams;
+
+ /**
+ * Instantiates a new Generator task.
+ *
+ * @param generators the generators
+ * @param input the input
+ * @param additionalParams the additional params
+ */
+ public GeneratorTask(List<ArtifactGenerator> generators, List<Artifact> input,
+ Map<String, String> additionalParams ) {
+ this.input = input;
+ this.generators = generators;
+ this.additionalParams = additionalParams;
+ }
+
+ @Override
+ protected GenerationData compute() {
+ if (generators.size() == 1) {
+ log.debug("Instantiating Generator : " + generators.get(0).getClass().getName());
+ return generators.remove(0).generateArtifact(input, additionalParams);
+ } else {
+ LinkedList<ArtifactGenerator> generator = new LinkedList<>();
+ generator.add(generators.remove(0));
+ GeneratorTask tobeDone = new GeneratorTask(generator, input, additionalParams);
+ GeneratorTask tobeForked =
+ new GeneratorTask(new LinkedList<ArtifactGenerator>(generators), input, additionalParams);
+ tobeForked.fork();
+ GenerationData output = tobeDone.compute();
+ output.add(tobeForked.join());
+ return output;
+ }
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/MockArtifactGenerator.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/MockArtifactGenerator.java
new file mode 100644
index 0000000000..78241a29ad
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/MockArtifactGenerator.java
@@ -0,0 +1,81 @@
+/*-
+ * ============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.generator;
+
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.data.ArtifactType;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.data.GeneratorUtil;
+import org.openecomp.sdc.generator.data.GroupType;
+import org.openecomp.sdc.generator.intf.ArtifactGenerator;
+import org.openecomp.sdc.generator.intf.Generator;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Generator(artifactType = ArtifactType.OTHER)
+public class MockArtifactGenerator implements ArtifactGenerator {
+
+ @Override
+ public GenerationData generateArtifact(List<Artifact> input,
+ Map<String, String> additionalParams) {
+ final GenerationData data = new GenerationData();
+
+ String staticArtifactName = "MOCK_Generator-Static-Artifact.xml";
+ String staticArtifactLabel = "MOCK-Generator-Static-Artifact";
+ final String dynamicArtifactName = "MOCK_Generator-Dynamic-Artifact.xml";
+ final String dynamicArtifactLabel = "MOCK-Generator-Dynamic-Artifact";
+ String staticArtifact = getStaticArtifact();
+ String dynamicArtifact = getDynamicArtifact();
+
+ Artifact staticArtifactModel = new Artifact(ArtifactType.OTHER.name(), GroupType.OTHER.name(),
+ GeneratorUtil.checkSum(staticArtifact.getBytes()),
+ GeneratorUtil.encode(staticArtifact.getBytes()));
+ staticArtifactModel.setName(staticArtifactName);
+ staticArtifactModel.setLabel(staticArtifactLabel);
+ staticArtifactModel.setDescription("Mock Generator");
+
+ Artifact dynamicArtifactModel = new Artifact(ArtifactType.OTHER.name(), GroupType.OTHER.name(),
+ GeneratorUtil.checkSum(dynamicArtifact.getBytes()),
+ GeneratorUtil.encode(dynamicArtifact.getBytes()));
+ dynamicArtifactModel.setName(dynamicArtifactName);
+ dynamicArtifactModel.setLabel(dynamicArtifactLabel);
+ dynamicArtifactModel.setDescription("Mock Generator");
+
+ data.add(staticArtifactModel);
+ data.add(dynamicArtifactModel);
+
+ return data;
+
+ }
+
+ private String getStaticArtifact() {
+ return "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><theObj><name>Hi I'm Static</name></theObj>";
+ }
+
+ private String getDynamicArtifact() {
+ return
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><theObj><name>Hi I'm Static</name><timestamp>"
+ + new Date() + "</timestamp></theObj>";
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java
new file mode 100644
index 0000000000..552e11e91d
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java
@@ -0,0 +1,687 @@
+/*-
+ * ============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.generator.aai;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ARTIFACT_MODEL_INFO;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGFILE_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_MISSING;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ID_LENGTH;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.logError;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.aai.model.AllotedResource;
+import org.openecomp.sdc.generator.aai.model.ProvidingService;
+import org.openecomp.sdc.generator.aai.model.L3NetworkWidget;
+import org.openecomp.sdc.generator.aai.model.Model;
+import org.openecomp.sdc.generator.aai.model.Resource;
+import org.openecomp.sdc.generator.aai.model.Service;
+import org.openecomp.sdc.generator.aai.model.TunnelXconnectWidget;
+import org.openecomp.sdc.generator.aai.model.VfModule;
+import org.openecomp.sdc.generator.aai.model.Widget;
+import org.openecomp.sdc.generator.aai.tosca.GroupDefinition;
+import org.openecomp.sdc.generator.aai.tosca.NodeTemplate;
+import org.openecomp.sdc.generator.aai.tosca.ToscaTemplate;
+import org.openecomp.sdc.generator.aai.types.ModelType;
+import org.openecomp.sdc.generator.data.AdditionalParams;
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.data.ArtifactType;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.data.GeneratorConstants;
+import org.openecomp.sdc.generator.data.GeneratorUtil;
+import org.openecomp.sdc.generator.data.GroupType;
+import org.openecomp.sdc.generator.data.WidgetConfigurationUtil;
+import org.openecomp.sdc.generator.intf.ArtifactGenerator;
+import org.openecomp.sdc.generator.intf.Generator;
+import org.openecomp.sdc.generator.logging.annotations.Audit;
+import org.openecomp.sdc.generator.util.ArtifactGeneratorUtil;
+import org.slf4j.MDC;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+@Generator(artifactType = ArtifactType.AAI)
+public class AaiArtifactGenerator implements ArtifactGenerator {
+
+ private static Logger log = LoggerFactory.getLogger(AaiArtifactGenerator.class.getName());
+
+ /**
+ * Implementation of the method to generate AAI artifacts.
+ *
+ * @param input List of input tosca files
+ * @return Translated/Error data as a {@link GenerationData} object
+ */
+ @Override
+ @Audit
+ public GenerationData generateArtifact(List<Artifact> input,
+ Map<String, String> additionalParams) {
+ try {
+ if (input != null && input.size() != 0 ) {
+ ArtifactGeneratorUtil.initializeArtifactLoggingContext(input.get(0));
+ }
+ initWidgetConfiguration();
+ return generateArtifactInternal(input, additionalParams);
+ } catch (Exception exception) {
+ logError(exception.getMessage(), exception);
+ GenerationData generationData = new GenerationData();
+ generationData.add(ArtifactType.AAI.name(), exception.getMessage());
+ return generationData;
+ }
+ }
+
+ /**
+ * Helper method to generate AAI artifacts.
+ *
+ * @param input List of input tosca files
+ * @return Translated/Error data as a {@link GenerationData} object
+ */
+ private GenerationData generateArtifactInternal(List<Artifact> input,
+ Map<String, String> additionalParams) {
+ final GenerationData generationData = new GenerationData();
+
+ List<Resource> resources = new LinkedList<>();
+ Map<String, String> idTypeStore = new HashMap<>();
+ Map<String, String> resourcesVersion = new HashMap<>();
+
+ List<ToscaTemplate> toscas = new LinkedList<>();
+
+ String serviceVersion = additionalParams.get(AdditionalParams.ServiceVersion.getName());
+ if (serviceVersion == null) {
+ throw new IllegalArgumentException(GeneratorConstants
+ .GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
+ } else {
+ String versionRegex = "^[1-9]\\d*(\\.0)$";
+ if (! (serviceVersion.matches(versionRegex))) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants
+ .GENERATOR_AAI_INVALID_SERVICE_VERSION));
+ }
+ }
+
+ for (Artifact inputArtifact : input) {
+ ToscaTemplate tosca = getToscaModel(inputArtifact, serviceVersion);
+ validateTosca(tosca, inputArtifact);
+ ToscaTemplate processedTosca = preProcessingTosca(tosca);
+ toscas.add(processedTosca);
+ }
+
+ //Get the service tosca from the list of artifacts
+ ToscaTemplate serviceTosca = getServiceTosca(toscas);
+ if (serviceTosca == null) {
+ throw new IllegalArgumentException(GeneratorConstants
+ .GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA);
+ }
+
+ Service service = new Service();
+ //Populate basic service model metadata
+ service.populateModelIdentificationInformation(serviceTosca.getMetadata());
+
+ if (serviceTosca.getTopology_template() != null
+ && serviceTosca.getTopology_template().getNode_templates() != null) {
+ processServiceTosca(service, idTypeStore,resourcesVersion, serviceTosca,resources);
+ }
+ validateResourceToscaAgainstService(idTypeStore, toscas);
+
+ //Process the resource tosca files
+ int counter = 0;
+ List<Resource> currentToscaResources = new LinkedList<>();
+ while (toscas.size() > 0) {
+ ToscaTemplate resourceTemplate = toscas.remove(0);
+ String resourceUuId = resourceTemplate.getMetadata().get("UUID");
+ String mapValue = idTypeStore.get(resourceUuId);
+ if (mapValue == null) {
+ log.warn(
+ "Additional tosca file found with resource version id : "
+ + resourceUuId);
+ break;
+ }
+ //update resource version with version from service tosca
+ String resourceVersion = resourcesVersion.get(resourceUuId);
+ resourceTemplate.getMetadata().put("version", resourceVersion);
+ Model model = Model.getModelFor(idTypeStore.get(resourceTemplate.getModelVersionId()));
+
+ log.debug("Inside Resource artifact generation for resource");
+ model.populateModelIdentificationInformation(
+ resourceTemplate.getMetadata()); //Get base resource metadata information
+ //Found model from the type store so removing the same
+ idTypeStore.remove(model.getModelNameVersionId());
+ if (resourceTemplate.getTopology_template() != null
+ && resourceTemplate.getTopology_template().getNode_templates() != null) {
+ processVfTosca(idTypeStore, resourceTemplate, model);
+ }
+
+ //Process group information from tosca for vfModules
+ if (resourceTemplate.getTopology_template() != null
+ && resourceTemplate.getTopology_template().getGroups() != null) {
+ processVfModule(resources, currentToscaResources, resourceTemplate, model);
+ } else {
+ model.getWidgets().clear();
+ }
+
+ if ("Tunnel XConnect".equals(resourceTemplate.getMetadata().get("subcategory"))
+ && "Allotted Resource".equals(resourceTemplate.getMetadata().get("category"))) {
+ model.addWidget(new TunnelXconnectWidget());
+ }
+
+ resources.add((Resource) model);
+ currentToscaResources
+ .clear(); //Clearing the current tosca resource list for the next iteration
+ counter = 0;
+ }
+
+ AaiModelGenerator modelGenerator = AaiModelGenerator.getInstance();
+ //Generate AAI XML service model
+ MDC.put(ARTIFACT_MODEL_INFO , service.getModelName() + "," + getArtifactLabel(service));
+ String aaiServiceModel = modelGenerator.generateModelFor(service);
+ generationData.add(getServiceArtifact(service, aaiServiceModel));
+
+ //Generate AAI XML resource model
+ for (Resource res : resources) {
+ MDC.put(ARTIFACT_MODEL_INFO , res.getModelName() + "," + getArtifactLabel(res));
+ String aaiResourceModel = modelGenerator.generateModelFor(res);
+ generationData.add(getResourceArtifact(res, aaiResourceModel));
+ }
+
+ //Resetting logging parameters since they get overridden while writing metrics logs
+ // recursively for service, resource and widgets.
+ if (input != null && input.size() != 0 ) {
+ ArtifactGeneratorUtil.initializeArtifactLoggingContext(input.get(0));
+ }
+
+ return generationData;
+ }
+
+ private void validateResourceToscaAgainstService(Map<String, String> idTypeStore,
+ List<ToscaTemplate> toscas) {
+ Iterator entries = idTypeStore.entrySet().iterator();
+ while (entries.hasNext()) {
+ Map.Entry entry = (Map.Entry) entries.next();
+ String resourceUuidFromService = (String)entry.getKey();
+ Iterator<ToscaTemplate> itr = toscas.iterator();
+ boolean toscaFound = false;
+ while (itr.hasNext()) {
+ ToscaTemplate toscaTemplate = itr.next();
+ String resourceUuId = toscaTemplate.getMetadata().get("UUID");
+ if (resourceUuidFromService.equals(resourceUuId)) {
+ toscaFound = true;
+ break;
+ }
+ }
+ if (toscaFound == false) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA,
+ resourceUuidFromService));
+ }
+ }
+
+ }
+
+ private ToscaTemplate preProcessingTosca(ToscaTemplate tosca) {
+ ToscaTemplate processedTosca = tosca;
+ if (tosca.getTopology_template() != null
+ && tosca.getTopology_template().getNode_templates() != null) {
+ Collection<NodeTemplate> coll =
+ processedTosca.getTopology_template().getNode_templates().values();
+ for (NodeTemplate node : coll) {
+
+ if (node.getType().contains("org.openecomp.resource.vf.") && node.getMetadata().get("category")
+ .equals("Allotted Resource")) {
+ node.setType("org.openecomp.resource.vf.allottedResource");
+ }
+ if (node.getType().contains("org.openecomp.resource.vfc.") && node.getMetadata().get
+ ("category")
+ .equals("Allotted Resource")) {
+ node.setType("org.openecomp.resource.vfc.AllottedResource");
+ }
+ }
+ }
+ return processedTosca;
+ }
+
+ private void processVfTosca(Map<String, String> idTypeStore, ToscaTemplate resourceTemplate,
+ Model model) {
+ Set<String> keys = resourceTemplate.getTopology_template().getNode_templates().keySet();
+ boolean flag = false;
+ for (String key : keys) {
+ NodeTemplate node = resourceTemplate.getTopology_template().getNode_templates().get(key);
+ Model resourceNode = Model.getModelFor(node.getType());
+ if (resourceNode != null) {
+ if (resourceNode instanceof ProvidingService) {
+ flag = true;
+ Map<String, String> properties = new HashMap<>();
+ Map<String, Object> nodeProperties = node.getProperties();
+ if (nodeProperties.get("providing_service_uuid") == null || nodeProperties.get(
+ "providing_service_invariant_uuid") == null) {
+ throw new IllegalArgumentException(String.format(
+ GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING
+ , model.getModelId()));
+ }
+ for (String key1 : nodeProperties.keySet()) {
+ if (nodeProperties.get(key1) instanceof String) {
+ properties.put(key1, nodeProperties.get(key1).toString());
+ }
+ }
+ properties.put("version","1.0");
+ resourceNode.populateModelIdentificationInformation(properties);
+ model.addResource((Resource) resourceNode);
+ } else if (resourceNode instanceof Resource && !(resourceNode.getWidgetType().equals(
+ Widget.Type
+ .L3_NET))) {
+ //resourceNode.populateModelIdentificationInformation(node.getMetadata());
+ idTypeStore.put(resourceNode.getModelNameVersionId(), node.getType());
+ model.addResource((Resource) resourceNode);
+ }
+ }
+ }
+ if(model instanceof AllotedResource){
+ if(!flag) {
+ throw new IllegalArgumentException(String.format(GENERATOR_AAI_PROVIDING_SERVICE_MISSING,
+ model.getModelId()));
+ }
+ }
+ }
+
+ /* private void vfWarnScenario(Map<String, String> idTypeStore, ToscaTemplate resourceTemplate) {
+ if (idTypeStore.size() == 0) {
+ //Log message for extra model file
+ log.warn(
+ "Additional tosca file found with resource version id : "
+ + resourceTemplate.getModelVersionId());
+ } else {
+ //Log message for missing model files.. Replace with logger statement
+ log.warn("Service-Resource Tosca mapping not found for : "
+ + idTypeStore.keySet().toString());
+ }
+ return;
+ }*/
+
+ private void processVfModule(List<Resource> resources, List<Resource> currentToscaResources,
+ ToscaTemplate resourceTemplate, Model model) {
+ log.debug("Inside Resource artifact generation for group/vfModule");
+ Collection<GroupDefinition> groups =
+ resourceTemplate.getTopology_template().getGroups().values();
+ Set<String> nodeNameListForGroups = new HashSet<>();
+ for (GroupDefinition gd : groups) {
+ Model group = Model.getModelFor(gd.getType());
+ if (group != null) {
+ group.populateModelIdentificationInformation(gd.getMetadata());
+ Map<String, String> properties = new HashMap<>();
+ Map<String, Object> groupProperties = gd.getProperties();
+ for (String key : groupProperties.keySet()) {
+ if (groupProperties.get(key) instanceof String) {
+ properties.put(key, groupProperties.get(key).toString());
+ }
+ }
+ group.populateModelIdentificationInformation(properties);
+ if (group instanceof VfModule && !currentToscaResources.contains(group)) {
+ if (gd.getMembers() != null && !gd.getMembers().isEmpty()) {
+ Set<String> groupMembers = new HashSet<>();
+ ((VfModule) group).setMembers(gd.getMembers());
+ nodeNameListForGroups.addAll(gd.getMembers());
+ groupMembers.addAll(gd.getMembers());
+
+ for (String member : groupMembers) {
+ NodeTemplate node =
+ resourceTemplate.getTopology_template().getNode_templates().get(member);
+ if (node != null) {
+ Model resourceNode = null;
+ //L3-network inside vf-module to be generated as Widget a special handling.
+ if (node.getType().contains("org.openecomp.resource.vl")) {
+ resourceNode = new L3NetworkWidget();
+ } else {
+ resourceNode = Model.getModelFor(node.getType());
+ }
+ if (resourceNode != null) {
+ if (!(resourceNode instanceof Resource)) {
+ Widget widget = (Widget) resourceNode;
+ widget.addKey(member);
+ //Add the widget element encountered
+ // in the resource tosca in the resource model
+ boolean isAdded = group.addWidget(widget);
+
+ //Add only widgets which are members of vf module and remove others
+ if (isAdded) {
+ model.addWidget(widget);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ model.addResource((Resource) group); //Added group (VfModule) to the (VF) model
+ currentToscaResources
+ .add((Resource) group); //Adding the VfModule group to file specific resources
+ //Check if we have already encountered the same VfModule across all the artifacts
+ if (!resources.contains(group)) {
+ resources.add((Resource) group);
+ }
+ }
+ }
+ }
+
+ Iterator<Widget> iter = model.getWidgets().iterator();
+ while (iter.hasNext()) {
+ if (iter.next().allInstancesUsed(nodeNameListForGroups) || true) {
+ iter.remove();
+ }
+ }
+ }
+
+ private void processServiceTosca(Service service, Map<String, String> idTypeStore,Map<String,
+ String> resourcesVersion,ToscaTemplate serviceTosca, List<Resource> resources) {
+ Collection<NodeTemplate> coll =
+ serviceTosca.getTopology_template().getNode_templates().values();
+ log.debug("Inside Service Tosca ");
+ //Get the resource/widgets in the service according to the node-template types
+ for (NodeTemplate node : coll) {
+ Model model = Model.getModelFor(node.getType());
+ if (model != null) {
+ model.populateModelIdentificationInformation(node.getMetadata());
+ if (model instanceof Resource) {
+ String resourceVersion = node.getMetadata().get("version");
+ validateVersion(resourceVersion,model.getModelNameVersionId());
+ //Keeping track of resource types and
+ // their uuid for identification during resource tosca processing
+ idTypeStore.put(model.getModelNameVersionId(), node.getType());
+ resourcesVersion.put(model.getModelNameVersionId(),resourceVersion);
+ service.addResource((Resource) model);
+ } else {
+ service.addWidget((Widget) model);
+ }
+ }
+ }
+ }
+
+ /**
+ * Create Service artifact model from the AAI xml model string.
+ *
+ * @param serviceModel Model of the service artifact
+ * @param aaiServiceModel AAI model as string
+ * @return Generated {@link Artifact} model for the service
+ */
+ private Artifact getServiceArtifact(Model serviceModel, String aaiServiceModel) {
+ Artifact artifact =
+ new Artifact(ArtifactType.MODEL_INVENTORY_PROFILE.name(), GroupType.DEPLOYMENT.name(),
+ GeneratorUtil.checkSum(aaiServiceModel.getBytes()),
+ GeneratorUtil.encode(aaiServiceModel.getBytes()));
+ String serviceArtifactName = getArtifactName(serviceModel);
+ String serviceArtifactLabel = getArtifactLabel(serviceModel);
+ artifact.setName(serviceArtifactName);
+ artifact.setLabel(serviceArtifactLabel);
+ String description = getArtifactDescription(serviceModel);
+ artifact.setDescription(description);
+ return artifact;
+ }
+
+ /**
+ * Create Resource artifact model from the AAI xml model string.
+ *
+ * @param resourceModel Model of the resource artifact
+ * @param aaiResourceModel AAI model as string
+ * @return Generated {@link Artifact} model for the resource
+ */
+ private Artifact getResourceArtifact(Model resourceModel, String aaiResourceModel) {
+ Artifact artifact =
+ new Artifact(ArtifactType.MODEL_INVENTORY_PROFILE.name(), GroupType.DEPLOYMENT.name(),
+ GeneratorUtil.checkSum(aaiResourceModel.getBytes()),
+ GeneratorUtil.encode(aaiResourceModel.getBytes()));
+ String resourceArtifactName = getArtifactName(resourceModel);
+ String resourceArtifactLabel = getArtifactLabel(resourceModel);
+ artifact.setName(resourceArtifactName);
+ artifact.setLabel(resourceArtifactLabel);
+ String description = getArtifactDescription(resourceModel);
+ artifact.setDescription(description);
+ return artifact;
+ }
+
+ /**
+ * Method to generate the artifact name for an AAI model.
+ *
+ * @param model AAI artifact model
+ * @return Model artifact name
+ */
+ private String getArtifactName(Model model) {
+ StringBuilder artifactName = new StringBuilder(ArtifactType.AAI.name());
+ artifactName.append("-");
+
+ String truncatedArtifactName = "";
+ truncatedArtifactName = truncateName(model.getModelName());
+ artifactName.append(truncatedArtifactName);
+
+ artifactName.append("-");
+ artifactName.append(model.getModelType().name().toLowerCase());
+ artifactName.append("-");
+ artifactName.append(model.getModelVersion());
+
+ //artifactName.append(model.getModelVersion());
+ artifactName.append(".");
+ artifactName.append(GeneratorConstants.GENERATOR_AAI_GENERATED_ARTIFACT_EXTENSION);
+ return artifactName.toString();
+ }
+
+ private String getArtifactLabel(Model model) {
+ // String label = "";
+ StringBuilder artifactName = new StringBuilder(ArtifactType.AAI.name());
+ artifactName.append("-");
+ artifactName.append(model.getModelType().name().toLowerCase());
+ artifactName.append("-");
+ artifactName.append(hashCodeUuId(model.getModelNameVersionId()));
+ String label = (artifactName.toString()).replaceAll("[^a-zA-Z0-9 +]+", "-");
+ return label;
+ }
+
+ private int hashCodeUuId(String uuId) {
+ int hashcode = 0;
+ for (int i = 0; i < uuId.length(); i++) {
+ hashcode = 31 * hashcode + uuId.charAt(i);
+ }
+ return hashcode;
+ }
+
+
+ private String truncateName(String name) {
+ String truncatedName = name;
+ if (name.length() >= 200) {
+ truncatedName = name.substring(0, 199);
+ }
+ return truncatedName;
+ }
+
+ private String getArtifactDescription(Model model) {
+ String artifactDesc = model.getModelDescription();
+ if (model.getModelType().equals(ModelType.SERVICE)) {
+ artifactDesc = "AAI Service Model";
+ } else if (model.getModelType().equals(ModelType.RESOURCE)) {
+ artifactDesc = "AAI Resource Model";
+ }
+ return artifactDesc;
+ }
+
+ private void validateVersion(String version, String uuId) {
+ String versionRegex = "^[0-9]\\d*(\\.\\d+)$";
+ if (null == version || version == "") {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+ uuId));
+ } else if ( version.equals("0.0") || !(version.matches(versionRegex))) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+ uuId));
+ }
+ }
+ /**
+ * Get the tosca java model from the tosca input artifact.
+ *
+ * @param input Input tosca file and its metadata information as {@link Artifact} object
+ * @return Translated {@link ToscaTemplate tosca} object
+ */
+
+ private ToscaTemplate getToscaModel(Artifact input, String serviceVersion)
+ throws SecurityException {
+ byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
+ String checksum = GeneratorUtil.checkSum(decodedInput);
+ ToscaTemplate tosca = null;
+ if (checksum.equalsIgnoreCase(input.getChecksum())) {
+ try {
+ tosca = GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
+ tosca.getMetadata().put("version", serviceVersion);
+ return tosca;
+ } catch (Exception exception) {
+ throw new IllegalArgumentException(
+ String.format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()));
+ }
+ } else {
+ throw new SecurityException(GeneratorConstants.GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH);
+ }
+ }
+
+ private void validateTosca(ToscaTemplate tosca, Artifact input) {
+ log.debug("Validating tosca for Artifact: " + input.getName());
+ if (tosca.getMetadata().containsKey("invariantUUID")) {
+ if (tosca.getMetadata().get("invariantUUID") == null
+ || tosca.getMetadata().get("invariantUUID") == "") {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+ "invariantUUID",
+ input.getName()));
+ } else if (tosca.getMetadata().get("invariantUUID").length() != ID_LENGTH) {
+ throw new IllegalArgumentException(String.format(
+ GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "invariantUUID", input.getName()));
+ }
+ }
+
+ if (tosca.getMetadata().containsKey("UUID")) {
+ if (tosca.getMetadata().get("UUID") == null || tosca.getMetadata().get("UUID") == "") {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION, "UUID",
+ input.getName()));
+ } else if (tosca.getMetadata().get("UUID").length() != ID_LENGTH) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "UUID", input.getName()));
+ }
+
+ }
+ if (tosca.getMetadata().containsKey("name")) {
+ if (tosca.getMetadata().get("name") == null || tosca.getMetadata().get("name") == "") {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION, "name",
+ input.getName()));
+ }
+ }
+
+ //Validate VFmodule
+ if (tosca.getTopology_template() != null && tosca.getTopology_template().getGroups() != null) {
+ Collection<GroupDefinition> groups = tosca.getTopology_template().getGroups().values();
+ for (GroupDefinition gd : groups) {
+ Model group = Model.getModelFor(gd.getType());
+ if (group != null && group instanceof VfModule) {
+ if (gd.getMetadata().containsKey("vfModuleModelName")
+ && gd.getMetadata().get("vfModuleModelName") == null) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+ "vfModuleModelName",
+ input.getName()));
+ }
+ if (gd.getMetadata().containsKey("vfModuleModelInvariantUUID")
+ && gd.getMetadata().get("vfModuleModelInvariantUUID") == null) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+ "vfModuleModelInvariantUUID", input.getName()));
+ } else if (gd.getMetadata().get("vfModuleModelInvariantUUID").length() != ID_LENGTH) {
+ throw new IllegalArgumentException(String.format(
+ GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "vfModuleModelInvariantUUID",
+ input.getName()));
+ }
+
+ if (gd.getMetadata().containsKey("vfModuleModelUUID")
+ && gd.getMetadata().get("vfModuleModelUUID") == null) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+ "vfModuleModelUUID",
+ input.getName()));
+ } else if (gd.getMetadata().get("vfModuleModelUUID").length() != ID_LENGTH) {
+ throw new IllegalArgumentException(String.format(
+ GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "vfModuleModelUUID",
+ input.getName()));
+ }
+ if (gd.getMetadata().containsKey("vfModuleModelVersion")
+ && gd.getMetadata().get("vfModuleModelVersion") == null) {
+ throw new IllegalArgumentException(String
+ .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+ "vfModuleModelVersion",
+ input.getName()));
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Identify the service tosca artifact from the list of translated tosca inputs.
+ *
+ * @param input List of translated {@link ToscaTemplate tosca} object models
+ * @return Identified service {@link ToscaTemplate tosca}
+ */
+ private ToscaTemplate getServiceTosca(List<ToscaTemplate> input) {
+ Iterator<ToscaTemplate> iter = input.iterator();
+ while (iter.hasNext()) {
+ ToscaTemplate tosca = iter.next();
+ if (tosca.isService()) {
+ iter.remove();
+ return tosca;
+ }
+ }
+ return null;
+ }
+
+ private void initWidgetConfiguration() throws IOException {
+ log.debug("Getting Widget Configuration");
+ String configLocation = System.getProperty("artifactgenerator.config");
+ Properties properties = null;
+ if (configLocation != null) {
+ File file = new File(configLocation);
+ if (file.exists()) {
+ properties = new Properties();
+ properties.load(new FileInputStream(file));
+ WidgetConfigurationUtil.setConfig(properties);
+ } else {
+ throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGFILE_NOT_FOUND,
+ configLocation));
+ }
+ } else {
+ throw new IllegalArgumentException(GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
+ }
+ }
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGeneratorImpl.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGeneratorImpl.java
new file mode 100644
index 0000000000..ddddfed2e6
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiModelGeneratorImpl.java
@@ -0,0 +1,282 @@
+/*-
+ * ============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.generator.aai;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.aai.model.Resource;
+import org.openecomp.sdc.generator.aai.model.Service;
+import org.openecomp.sdc.generator.aai.model.Widget;
+import org.openecomp.sdc.generator.aai.xml.Model;
+import org.openecomp.sdc.generator.aai.xml.ModelElement;
+import org.openecomp.sdc.generator.aai.xml.ModelElements;
+import org.openecomp.sdc.generator.aai.xml.ModelVer;
+import org.openecomp.sdc.generator.aai.xml.ModelVers;
+import org.openecomp.sdc.generator.aai.xml.Relationship;
+import org.openecomp.sdc.generator.aai.xml.RelationshipData;
+import org.openecomp.sdc.generator.aai.xml.RelationshipList;
+import org.openecomp.sdc.generator.logging.annotations.Audit;
+import org.openecomp.sdc.generator.logging.annotations.Metrics;
+import org.w3c.dom.DOMException;
+
+import java.io.StringWriter;
+import java.util.List;
+import java.util.Set;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+/**
+ * Implementation of the {@link AaiModelGenerator} which generates the XML models from the
+ * Service/Resource/Widget java models.
+ */
+public class AaiModelGeneratorImpl implements AaiModelGenerator {
+ private static Logger log = LoggerFactory.getLogger(AaiModelGeneratorImpl.class.getName());
+
+ /**
+ * Method to generate the AAI model for a Service.
+ *
+ * @param service Java object model representing an AAI {@link Service} model
+ * @return XML representation of the service model in String format
+ */
+ @Override
+ @Metrics
+ public String generateModelFor(Service service) {
+ //Create a JAXB Model for AAI service model
+ Model aaiServiceModel = new Model();
+ log.debug("Generating Model for Service with ModelName: " + service.getModelName());
+ // after new model
+ aaiServiceModel.setModelInvariantId(service.getModelId());
+ aaiServiceModel.setModelVers(new ModelVers());
+ ModelVer modelVer = new ModelVer();
+ modelVer.setModelDescription(service.getModelDescription());
+ modelVer.setModelName(service.getModelName());
+ modelVer.setModelVersion(service.getModelVersion());
+ modelVer.setModelVersionId(service.getModelNameVersionId());
+ modelVer.setModelElements(new ModelElements());
+ ModelElements modelElements = modelVer.getModelElements();
+ //Populate basic model details
+ aaiServiceModel
+ .setModelType(service.getModelType().name().toLowerCase()); //Using enum name as model type
+ List<ModelElement> modelElementList = modelElements.getModelElement();
+
+ //Add service base widget model element
+ ModelElement serviceWidgetModelRelationshipElement =
+ createRelationshipModelElement(getNewDataDelFlagValue(service.getDeleteFlag()),
+ service.getWidgetId(),service.getWidgetInvariantId());
+ modelElementList.add(serviceWidgetModelRelationshipElement);
+
+ //Add the resource model elements
+ ModelElements serviceModelElements = serviceWidgetModelRelationshipElement.getModelElements();
+ List<ModelElement> serviceModelElementList = serviceModelElements.getModelElement();
+ Set<Resource> serviceResources = service.getResources();
+ if (serviceResources != null && !serviceResources.isEmpty()) {
+ for (Resource resourceModel : serviceResources) {
+ ModelElement aaiResourceModelElement =
+ createRelationshipModelElement(getNewDataDelFlagValue(resourceModel.getDeleteFlag()),
+ resourceModel.getModelNameVersionId(),resourceModel.getModelId());
+ serviceModelElementList.add(aaiResourceModelElement);
+ }
+ }
+
+ //Add the widget model elements
+ Set<Widget> serviceWidgets = service.getWidgets();
+ if (serviceWidgets != null && !serviceWidgets.isEmpty()) {
+ for (Widget widgetModel : serviceWidgets) {
+ ModelElement widgetModelElement =
+ createRelationshipModelElement(getNewDataDelFlagValue(widgetModel.getDeleteFlag()),
+ widgetModel.getId(),widgetModel.getWidgetId());
+ serviceModelElementList.add(widgetModelElement);
+ }
+ }
+ ModelVers modelVers = aaiServiceModel.getModelVers();
+ List<ModelVer> modelVerList = modelVers.getModelVer();
+ modelVerList.add(modelVer);
+ return getModelAsString(aaiServiceModel);
+ }
+
+ /**
+ * Method to generate the AAI model for a Resource.
+ *
+ * @param resource Java object model representing an AAI {@link Resource} model
+ * @return XML representation of the resource model in String format
+ */
+ @Override
+ @Metrics
+ public String generateModelFor(Resource resource) {
+ //Create a JAXB Model for AAI Resource model
+ Model aaiResourceModel = new Model();
+ log.debug("Generating Model for Resource with ModelName: " + resource.getModelName());
+ aaiResourceModel.setModelInvariantId(resource.getModelId());
+ aaiResourceModel.setModelVers(new ModelVers());
+ ModelVer modelVer = new ModelVer();
+ modelVer.setModelDescription(resource.getModelDescription());
+ modelVer.setModelName(resource.getModelName());
+ modelVer.setModelVersion(resource.getModelVersion());
+ modelVer.setModelVersionId(resource.getModelNameVersionId());
+ modelVer.setModelElements(new ModelElements());
+ ModelElements modelElements = modelVer.getModelElements();
+ aaiResourceModel
+ .setModelType(resource.getModelType().name().toLowerCase()); //Using enum name as model type
+ List<ModelElement> modelElementList = modelElements.getModelElement();
+
+ //Add resource base widget model element
+ ModelElement resourceWidgetModelRelationshipElement =
+ createRelationshipModelElement(getNewDataDelFlagValue(resource.getDeleteFlag()),
+ resource.getWidgetId(),resource.getWidgetInvariantId());
+ modelElementList.add(resourceWidgetModelRelationshipElement);
+
+ //Add the child resources to the base widget model element list
+ ModelElements baseResourceWidgetModelElements =
+ resourceWidgetModelRelationshipElement.getModelElements();
+ List<ModelElement> baseResourceWidgetModelElementList =
+ baseResourceWidgetModelElements.getModelElement();
+ Set<Resource> childResources = resource.getResources();
+ if (childResources != null && !childResources.isEmpty()) {
+ for (Resource childResourceModel : childResources) {
+ ModelElement aaiChildResourceModelElement = createRelationshipModelElement(
+ getNewDataDelFlagValue(childResourceModel.getDeleteFlag()),
+ childResourceModel.getModelNameVersionId(),childResourceModel.getModelId());
+ baseResourceWidgetModelElementList.add(aaiChildResourceModelElement);
+ }
+ }
+ //Add resource widgets/resources to the resource widget model relationship element
+ Set<Widget> resourceWidgets = resource.getWidgets();
+ if (resourceWidgets != null && !resourceWidgets.isEmpty()) {
+ generateWidgetChildren(resourceWidgetModelRelationshipElement, resourceWidgets);
+ }
+
+ ModelVers modelVers = aaiResourceModel.getModelVers();
+ List<ModelVer> modelVerList = modelVers.getModelVer();
+ modelVerList.add(modelVer);
+ return getModelAsString(aaiResourceModel);
+
+ }
+
+ /**
+ * Method to create the <model-element></model-element> holding the relationship value for a
+ * resource/widget
+ * model.
+ *
+ * @param newDataDelFlag Value of the <new-data-del-flag></new-data-del-flag> attribute for
+ * a widget/resource in
+ * the model xml
+ * @param relationshipValue Value of the <relationship-value></relationship-value> attribute
+ * for the widget/resource in
+ * the model xml
+ * @return Java object representation for the <model-element></model-element> holding the
+ relationship
+ */
+ private ModelElement createRelationshipModelElement(String newDataDelFlag,
+ String modelVersionId,String
+ modelInvariantId) {
+ ModelElement relationshipModelElement = new ModelElement();
+ relationshipModelElement.setNewDataDelFlag(newDataDelFlag); //Set new-data-del-flag value
+ relationshipModelElement.setCardinality("unbounded");
+ RelationshipList relationShipList = new RelationshipList();
+ final List<Relationship> relationships = relationShipList.getRelationship();
+ Relationship relationship = new Relationship();
+ relationship.setRelatedTo("model-ver");
+ List<RelationshipData> relationshipDataList = relationship.getRelationshipData();
+
+ RelationshipData modelVersionRelationshipData = new RelationshipData();
+ modelVersionRelationshipData.setRelationshipKey("model-ver.model-version-id");
+ modelVersionRelationshipData.setRelationshipValue(
+ modelVersionId); //Set the widget/resource name-version-uuid as value
+ relationshipDataList.add(modelVersionRelationshipData);
+ RelationshipData modelInvariantRelationshipData = new RelationshipData();
+ modelInvariantRelationshipData.setRelationshipKey("model.model-invariant-id");
+ modelInvariantRelationshipData.setRelationshipValue(
+ modelInvariantId);
+ relationshipDataList.add(modelInvariantRelationshipData);
+ relationships.add(relationship);
+ relationshipModelElement.setRelationshipList(relationShipList);
+ relationshipModelElement.setModelElements(new ModelElements());
+ return relationshipModelElement;
+ }
+
+ /**
+ * Method to create the child model elements of the widget. Handles the generation of recursive
+ * child widget elements (if any)
+ *
+ * @param parent Reference to the parent widget model element
+ * @param widgetChildrenSet Set of children obtained from the tosca/widget definition
+ */
+ private void generateWidgetChildren(ModelElement parent, Set<Widget> widgetChildrenSet) {
+ for (Widget widget : widgetChildrenSet) {
+ Set<Widget> widgetSubChildren = widget.getWidgets();
+ if (widgetSubChildren != null && !widgetSubChildren.isEmpty()) {
+ ModelElement widgetChildRelationshipElement =
+ createRelationshipModelElement(getNewDataDelFlagValue(widget.getDeleteFlag()),
+ widget.getId(),widget.getWidgetId());
+ //Recursive call for getting the children of widgets (if any)
+ generateWidgetChildren(widgetChildRelationshipElement, widgetSubChildren);
+ parent.getModelElements().getModelElement().add(widgetChildRelationshipElement);
+ } else {
+ ModelElement widgetChildRelationshipElement =
+ createRelationshipModelElement(getNewDataDelFlagValue(widget.getDeleteFlag()),
+ widget.getId(),widget.getWidgetId()
+ );
+ parent.getModelElements().getModelElement().add(widgetChildRelationshipElement);
+ }
+ }
+ }
+
+ /**
+ * Converts the data delete flag value from boolean to String as per AAI model.
+ *
+ * @param delFlag Boolean value as true/false from the annotation
+ * @return Converted value to a flag as per AAI model
+ */
+ private String getNewDataDelFlagValue(boolean delFlag) {
+ if (delFlag) {
+ return "T";
+ } else {
+ return "F";
+ }
+ }
+
+ /**
+ * JAXB marshalling helper method to convert the Java object model to XML String.
+ *
+ * @param model Java Object model of a service/widget/resource
+ * @return XML representation of the Java model in String format
+ */
+ private String getModelAsString(Model model) {
+ JAXBContext jaxbContext;
+ StringWriter modelStringWriter = new StringWriter();
+ try {
+ jaxbContext = JAXBContext.newInstance(Model.class);
+ Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
+ jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, "US-ASCII");
+ jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
+ jaxbMarshaller.marshal(model, modelStringWriter);
+ } catch (JAXBException jaxbException) {
+ //jaxbException.printStackTrace();
+ log.error(jaxbException.getMessage());
+ throw new DOMException(DOMException.SYNTAX_ERR, jaxbException.getMessage());
+ }
+
+ //System.out.println(modelStringWriter.toString());
+ return modelStringWriter.toString();
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/AuditAspect.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/AuditAspect.java
new file mode 100644
index 0000000000..19166df522
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/AuditAspect.java
@@ -0,0 +1,126 @@
+/*-
+ * ============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.generator.aspect;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.BEGIN_TIMESTAMP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ELAPSED_TIME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.END_TIMESTAMP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AUDIT_NO_ARTIFACT_TYPE_RESPONSE_DESC;
+import static org.openecomp.sdc.generator.data.GeneratorConstants
+ .GENERATOR_METRICS_FAILURE_RESPONSE_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_METRICS_FAILURE_RESPONSE_DESC;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_METRICS_SUCCESS_RESPONSE_DESC;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.RESPONSE_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.RESPONSE_DESCRIPTION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.SERVICE_NAME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.STATUS_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.TARGET_ENTITY;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.TARGET_SERVICE_NAME;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.artifactGeneratorErrorLogProcessor;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.getLogUtcDateStringFromTimestamp;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.logError;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.resetLoggingContext;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.logging.CategoryLogLevel;
+import org.openecomp.sdc.generator.logging.StatusCode;
+import org.openecomp.sdc.generator.util.ArtifactGeneratorUtil;
+import org.slf4j.MDC;
+
+import java.util.Date;
+
+/**
+ * Wraps around any method annotated with
+ * {@link org.openecomp.sdc.generator.logging.annotations.Audit} for auditing information
+ * In order for the aspect to be used, AspectJ annotation processing must be
+ * turned on and this particular aspect enabled.
+ *
+ * @see org.openecomp.sdc.generator.logging.annotations.Audit
+ */
+@Aspect
+public class AuditAspect {
+
+ /**
+ * Log Audit information for the method.
+ *
+ * @param pjp the pjp
+ * @return the object
+ * @throws Throwable the throwable
+ */
+ @Around("@annotation(org.openecomp.sdc.generator.logging.annotations.Audit)")
+ public Object logAuditInfo(ProceedingJoinPoint pjp) throws Throwable {
+
+ final Logger logger = LoggerFactory.getLogger(pjp.getSignature().getDeclaringTypeName());
+ // check if audit aspect is enabled
+ if (logger.isAuditEnabled()) {
+ final String method = pjp.getSignature().getName();
+ final long beginTimestamp = System.currentTimeMillis();
+ try {
+ Object obj = pjp.proceed();
+ MDC.put(RESPONSE_DESCRIPTION, String.format(GENERATOR_METRICS_SUCCESS_RESPONSE_DESC, MDC
+ .get(SERVICE_NAME)));
+
+ GenerationData data = (GenerationData)obj;
+ if (data.getErrorData() != null && !data.getErrorData().isEmpty()) {
+ MDC.put(STATUS_CODE, StatusCode.ERROR.name());
+ artifactGeneratorErrorLogProcessor(CategoryLogLevel.ERROR,data.getErrorData().get("AAI")
+ .get(0));
+ MDC.put(RESPONSE_CODE, MDC.get(ERROR_CODE));
+ // MDC.put(RESPONSE_CODE, GENERATOR_METRICS_FAILURE_RESPONSE_CODE);
+ // If not service name found log no artifact type found error.
+ if (MDC.get(SERVICE_NAME) == null) {
+ MDC.put(RESPONSE_DESCRIPTION, GENERATOR_AUDIT_NO_ARTIFACT_TYPE_RESPONSE_DESC);
+ } else {
+ MDC.put(RESPONSE_DESCRIPTION, String.format(GENERATOR_METRICS_FAILURE_RESPONSE_DESC, MDC
+ .get(SERVICE_NAME)));
+ }
+ }
+ return obj;
+
+ } catch (Exception ex) {
+ artifactGeneratorErrorLogProcessor(CategoryLogLevel.ERROR,ex.getMessage());
+ MDC.put(STATUS_CODE, StatusCode.ERROR.name());
+ MDC.put(RESPONSE_CODE, MDC.get(ERROR_CODE));
+ MDC.put(RESPONSE_DESCRIPTION, String.format(GENERATOR_METRICS_FAILURE_RESPONSE_DESC, MDC
+ .get(SERVICE_NAME)));
+ throw ex;
+ } finally {
+ long endTimestamp = System.currentTimeMillis();
+ MDC.put(BEGIN_TIMESTAMP, getLogUtcDateStringFromTimestamp(new Date(beginTimestamp)));
+ MDC.put(END_TIMESTAMP, getLogUtcDateStringFromTimestamp(new Date(endTimestamp)));
+ MDC.put(ELAPSED_TIME, String.valueOf(endTimestamp - beginTimestamp));
+
+ logger.audit("");
+ resetLoggingContext();
+ MDC.remove(SERVICE_NAME);
+ }
+ } else {
+ return pjp.proceed();
+ }
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/MetricsAspect.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/MetricsAspect.java
new file mode 100644
index 0000000000..d226b00b05
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aspect/MetricsAspect.java
@@ -0,0 +1,140 @@
+/*-
+ * ============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.generator.aspect;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ARTIFACT_MODEL_INFO;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.BEGIN_TIMESTAMP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ELAPSED_TIME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.END_TIMESTAMP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AUDIT_NO_ARTIFACT_TYPE_RESPONSE_DESC;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_METRICS_FAILURE_RESPONSE_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_METRICS_FAILURE_RESPONSE_DESC;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_METRICS_SUCCESS_RESPONSE_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_METRICS_SUCCESS_RESPONSE_DESC;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_METRICS_TARGET_ENTITY;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.REQUEST_ID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.RESPONSE_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.RESPONSE_DESCRIPTION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.SERVICE_INSTANCE_ID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.SERVICE_NAME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.STATUS_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.TARGET_ENTITY;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.TARGET_SERVICE_NAME;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.artifactGeneratorErrorLogProcessor;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.getLogUtcDateStringFromTimestamp;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.resetLoggingContext;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.logging.CategoryLogLevel;
+import org.openecomp.sdc.generator.logging.StatusCode;
+import org.slf4j.MDC;
+
+import java.util.Date;
+
+/**
+ * Wraps around any method annotated with
+ * {@link org.openecomp.sdc.generator.logging.annotations.Metrics} for logging metrics information
+ * In order for the aspect to be used, AspectJ annotation processing must be
+ * turned on and this particular aspect enabled.
+ *
+ * @see org.openecomp.sdc.generator.logging.annotations.Metrics
+ */
+@Aspect
+public class MetricsAspect {
+
+ /**
+ * Log Audit information for the method.
+ *
+ * @param pjp the pjp
+ * @return the object
+ * @throws Throwable the throwable
+ */
+ @Around("@annotation(org.openecomp.sdc.generator.logging.annotations.Metrics)")
+ public Object logMetrics(ProceedingJoinPoint pjp) throws Throwable {
+
+ final Logger logger = LoggerFactory.getLogger(pjp.getSignature().getDeclaringTypeName());
+ String [] modelInfo = MDC.get(ARTIFACT_MODEL_INFO).split(",");
+
+ if (modelInfo.length == 2) {
+ //Since ARTIFACT_MODEL_INFO is passed as String from caller "null" value is populated.
+ //So resetting "null" to "" in logs
+ String serviceInstanceId = modelInfo[0].equals("null") ? "" : modelInfo[0];
+ String requestId = modelInfo[1].equals("null") ? "" : modelInfo[1];
+ MDC.put(SERVICE_INSTANCE_ID, serviceInstanceId);
+ MDC.put(REQUEST_ID, requestId);
+ }
+
+ MDC.put(TARGET_ENTITY, GENERATOR_METRICS_TARGET_ENTITY);
+ MDC.put(TARGET_SERVICE_NAME, MDC.get(SERVICE_NAME) + " artifact generation");
+ // check if metrics aspect is enabled
+ if (logger.isMetricsEnabled()) {
+ final long beginTimestamp = System.currentTimeMillis();
+ try {
+ MDC.put(RESPONSE_DESCRIPTION, String.format(GENERATOR_METRICS_SUCCESS_RESPONSE_DESC, MDC
+ .get(SERVICE_NAME)));
+ Object obj = pjp.proceed();
+ if (obj instanceof GenerationData) {
+ GenerationData data = (GenerationData) obj;
+ if (data.getErrorData() != null && !data.getErrorData().isEmpty()) {
+ MDC.put(STATUS_CODE, StatusCode.ERROR.name());
+ artifactGeneratorErrorLogProcessor(CategoryLogLevel.ERROR, data.getErrorData().get(
+ "AAI").get(0));
+ MDC.put(RESPONSE_CODE, MDC.get(ERROR_CODE));
+ // MDC.put(RESPONSE_CODE, GENERATOR_METRICS_FAILURE_RESPONSE_CODE);
+ // If not service name found log no artifact type found error.
+ if (MDC.get(SERVICE_NAME) == null) {
+ MDC.put(RESPONSE_DESCRIPTION, GENERATOR_AUDIT_NO_ARTIFACT_TYPE_RESPONSE_DESC);
+ } else {
+ MDC.put(RESPONSE_DESCRIPTION,
+ String.format(GENERATOR_METRICS_FAILURE_RESPONSE_DESC, MDC
+ .get(SERVICE_NAME)));
+ }
+ }
+ }
+ return obj;
+
+
+ } catch (Exception ex) {
+ artifactGeneratorErrorLogProcessor(CategoryLogLevel.ERROR,ex.getMessage());
+ MDC.put(STATUS_CODE, StatusCode.ERROR.name());
+ MDC.put(RESPONSE_CODE, MDC.get(ERROR_CODE));
+ MDC.put(RESPONSE_DESCRIPTION, String.format(GENERATOR_METRICS_FAILURE_RESPONSE_DESC, MDC
+ .get(SERVICE_NAME)));
+ throw ex;
+ } finally {
+ long endTimestamp = System.currentTimeMillis();
+ MDC.put(BEGIN_TIMESTAMP, getLogUtcDateStringFromTimestamp(new Date(beginTimestamp)));
+ MDC.put(END_TIMESTAMP, getLogUtcDateStringFromTimestamp(new Date(endTimestamp)));
+ MDC.put(ELAPSED_TIME, String.valueOf(endTimestamp - beginTimestamp));
+ logger.metrics("");
+ resetLoggingContext();
+ }
+ } else {
+ return pjp.proceed();
+ }
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/impl/ArtifactGenerationServiceImpl.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/impl/ArtifactGenerationServiceImpl.java
new file mode 100644
index 0000000000..38e1b4c64e
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/impl/ArtifactGenerationServiceImpl.java
@@ -0,0 +1,86 @@
+/*-
+ * ============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.generator.impl;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_INVOCATION_ERROR_CODE;
+import static org.openecomp.sdc.generator.util.ArtifactGeneratorUtil.logError;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.GeneratorManager;
+import org.openecomp.sdc.generator.GeneratorTask;
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.intf.ArtifactGenerator;
+import org.openecomp.sdc.generator.service.ArtifactGenerationService;
+import org.openecomp.sdc.generator.util.ArtifactGeneratorUtil;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ForkJoinPool;
+
+/**
+ * Artifact Generation Service implementation class.
+ */
+public class ArtifactGenerationServiceImpl implements ArtifactGenerationService {
+
+ private static Logger log =
+ LoggerFactory.getLogger(ArtifactGenerationServiceImpl.class.getName());
+
+ /**
+ * Artifact generator method.
+ *
+ * @param input List of input files as {@link Artifact} models
+ * @param overridingConfiguration Configuration data for invoking generators
+ * @param additionalParams Additional Parameters
+ * @return Generated artifacts/Error data in a {@link GenerationData} object
+ */
+ @Override
+ public GenerationData generateArtifact(List<Artifact> input, String overridingConfiguration,
+ Map<String, String> additionalParams) {
+ try {
+ //Initialize artifact generation logging context
+ ArtifactGeneratorUtil.initializeLoggingContext();
+
+ List<ArtifactGenerator> generatorsToBeUsed =
+ GeneratorManager.getActiveArtifactGenerators(overridingConfiguration);
+ if (generatorsToBeUsed.size() > 0) {
+ return ForkJoinPool.commonPool().invoke(new GeneratorTask(generatorsToBeUsed, input,
+ additionalParams));
+ } else {
+ return new GenerationData();
+ }
+ } catch (IllegalArgumentException iae) {
+ //Invalid client configuration
+ logError(GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED, iae);
+ GenerationData errorData = new GenerationData();
+ errorData.add(GENERATOR_INVOCATION_ERROR_CODE, iae.getMessage());
+ return errorData;
+ } catch (Exception ex) {
+ logError(GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED, ex);
+ GenerationData errorData = new GenerationData();
+ errorData.add(GENERATOR_INVOCATION_ERROR_CODE,
+ GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED);
+ return errorData;
+ }
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/util/ArtifactGeneratorUtil.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/util/ArtifactGeneratorUtil.java
new file mode 100644
index 0000000000..94c332da54
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/util/ArtifactGeneratorUtil.java
@@ -0,0 +1,298 @@
+/*-
+ * ============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.generator.util;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.BEGIN_TIMESTAMP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.BE_FQDN;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.CATEGORY_LOG_LEVEL;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.CLIENT_IP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ELAPSED_TIME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.END_TIMESTAMP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CATEGORY;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.ERROR_DESCRIPTION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGFILE_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLPROP_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_MISSING;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_TOSCA_MSG;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION_MSG;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA_MSG;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED_MSG;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION_MSG;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_PARTNER_NAME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.INSTANCE_UUID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.LOCAL_ADDR;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.MDC_SDC_INSTANCE_UUID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.PARTNER_NAME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.REMOTE_HOST;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.REQUEST_ID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.RESPONSE_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.RESPONSE_DESCRIPTION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.SERVICE_INSTANCE_ID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.SERVICE_METRIC_BEGIN_TIMESTAMP;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.SERVICE_NAME;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.STATUS_CODE;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.TARGET_ENTITY;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.TARGET_SERVICE_NAME;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INTERNAL_SERVER_ERROR;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_CLIENT_CONFIGURATION;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_ID_VALUE;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_RESOURCE_VERSION;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_SERVICE_VERSION;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_TOSCA_YAML;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MANDATORY_ATTRIBUTE_MISSING;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_CONFIG_PROPERTIES_FILE;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_PRO_SERVICE;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_PRO_SERVICE_METADATA;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_RESOURCE_VERSION;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_SERVICE_VERSION;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_SYSTME_PROPERY_CONFIGURATION;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_WIDGET_CONFIGURATION;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.RESOURCE_TOSCA_MISSING;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.SERVICE_TOSCA_MISSING;
+import static org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode.UNABLE_TO_GENERATE_ARTIFACT;
+
+import org.openecomp.core.logging.api.Logger;
+import org.openecomp.core.logging.api.LoggerFactory;
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.logging.ArtifactGeneratorLogResponseCode;
+import org.openecomp.sdc.generator.logging.CategoryLogLevel;
+import org.openecomp.sdc.generator.logging.StatusCode;
+import org.slf4j.MDC;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+
+public class ArtifactGeneratorUtil {
+
+ private static Logger log = LoggerFactory.getLogger(ArtifactGeneratorUtil.class.getName());
+ private static final String LOG_UTC_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS";
+
+ /**
+ * Artifact Generator Error logging Helper.
+ * @param errorDescription Description of the error
+ */
+ public static void logError(String errorDescription) {
+ logError(errorDescription, "");
+ }
+
+ /**
+ * Artifact Generator Error logging Helper.
+ * @param errorDescription Description of the error
+ * @param ex Exception object for stackstrace
+ */
+ public static void logError(String errorDescription, Exception ex) {
+ StringWriter sw = new StringWriter();
+ ex.printStackTrace(new PrintWriter(sw));
+ String detailMessage = sw.toString();
+ logError(CategoryLogLevel.ERROR, errorDescription, detailMessage);
+ }
+
+ /**
+ * Artifact Generator Error logging Helper.
+ * @param errorDescription Description of the error
+ * @param detailMessage Detailed Error message
+ */
+ public static void logError(String errorDescription, String detailMessage) {
+ logError(CategoryLogLevel.ERROR, errorDescription, detailMessage);
+ }
+
+ /**
+ * Artifact Generator Error logging Helper.
+ * @param errorCategory ERROR
+ * @param errorDescription Description of the error
+ * @param detailMessage Detailed Error message
+ */
+ public static void logError(CategoryLogLevel errorCategory,
+ String errorDescription, String detailMessage) {
+ MDC.put(ERROR_CATEGORY, errorCategory.name());
+ MDC.put(STATUS_CODE, StatusCode.ERROR.name());
+ artifactGeneratorErrorLogProcessor(errorCategory,errorDescription);
+ log.error(detailMessage);
+ resetLoggingContext();
+ }
+
+ /**
+ * Initialize generic MDC attributes for logging the current request.
+ *
+ */
+ public static void initializeLoggingContext() {
+ log.debug("Initializing generic logging context ");
+ MDC.put(PARTNER_NAME, GENERATOR_PARTNER_NAME);
+ MDC.put(SERVICE_METRIC_BEGIN_TIMESTAMP, String.valueOf(System.currentTimeMillis()));
+ MDC.put(INSTANCE_UUID, MDC_SDC_INSTANCE_UUID);
+ MDC.put(STATUS_CODE, StatusCode.COMPLETE.name());
+ MDC.put(CLIENT_IP, MDC.get(REMOTE_HOST));
+
+ try {
+ InetAddress ip = InetAddress.getLocalHost();
+ MDC.put(LOCAL_ADDR, ip.getHostAddress());
+ String hostname = ip.getHostName();
+ MDC.put(BE_FQDN, hostname);
+ } catch (UnknownHostException uhe) {
+ log.error("Failed to get server FQDN");
+ }
+
+ if (log.isDebugEnabled()) {
+ MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.DEBUG.name());
+ } else if (log.isInfoEnabled()) {
+ MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.INFO.name());
+ } else if (log.isWarnEnabled()) {
+ MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.WARN.name());
+ } else if (log.isErrorEnabled()) {
+ MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.ERROR.name());
+ }
+ }
+
+ /**
+ * Initialize MDC for logging the current artifact request.
+ *
+ * @param artifact Current artifact
+ */
+ public static void initializeArtifactLoggingContext(Artifact artifact) {
+ log.debug("Initializing logging context for " + artifact.getLabel());
+ MDC.put(REQUEST_ID, artifact.getLabel());
+ MDC.put(SERVICE_NAME, artifact.getType());
+ MDC.put(SERVICE_INSTANCE_ID, artifact.getName());
+ }
+
+ /**
+ * Reset the logging context after a Audit/Metrics logging operation.
+ */
+ public static void resetLoggingContext() {
+ MDC.remove(ERROR_CATEGORY);
+ MDC.remove(ERROR_CODE);
+ MDC.remove(STATUS_CODE);
+ MDC.remove(ERROR_DESCRIPTION);
+ MDC.remove(BEGIN_TIMESTAMP);
+ MDC.remove(END_TIMESTAMP);
+ MDC.remove(ELAPSED_TIME);
+ MDC.put(STATUS_CODE, StatusCode.COMPLETE.name());
+ MDC.remove(RESPONSE_CODE);
+ MDC.remove(RESPONSE_DESCRIPTION);
+ MDC.remove(TARGET_ENTITY);
+ MDC.remove(TARGET_SERVICE_NAME);
+ }
+
+ /**
+ * Convert timestamp to UTC format date string.
+ *
+ * @param timeStamp UTC timestamp to be converted to the UTC Date format.
+ * @return UTC formatted Date string from timestamp.
+ */
+ public static String getLogUtcDateStringFromTimestamp(Date timeStamp) {
+ DateFormat df = new SimpleDateFormat(LOG_UTC_DATE_FORMAT);
+ df.setTimeZone(TimeZone.getTimeZone("GMT"));
+ return df.format(timeStamp);
+ }
+
+ /**
+ * Artifact Gnenerator Error logging Helper.
+ *
+ * @param errorCategory WARN or ERROR.
+ * @param errorDescription Description of the error.
+ */
+ public static void artifactGeneratorErrorLogProcessor(CategoryLogLevel errorCategory,
+ String errorDescription) {
+ MDC.put(ERROR_CATEGORY, errorCategory.name());
+ if (errorDescription != null) {
+ String errorType = "";
+ switch (errorCategory) {
+ case WARN:
+ errorType = "W";
+ break;
+ case ERROR:
+ errorType = "E";
+ break;
+ case FATAL:
+ errorType = "F";
+ break;
+ default:
+ break;
+ }
+ MDC.put(ERROR_CODE, getLogResponseCode(errorDescription) + errorType);
+ }
+ MDC.put(ERROR_DESCRIPTION, errorDescription);
+ }
+
+
+ /**
+ *
+ * @return Audit log code corresponding to the Artifact Generator exception.
+ */
+ public static int getLogResponseCode(String errorDescription) {
+ ArtifactGeneratorLogResponseCode responseCode = INTERNAL_SERVER_ERROR;
+ if (errorDescription.contains(GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION_MSG)) {
+ responseCode = MANDATORY_ATTRIBUTE_MISSING;
+ } else if (errorDescription.contains(GENERATOR_AAI_ERROR_INVALID_TOSCA_MSG)) {
+ responseCode = INVALID_TOSCA_YAML;
+ } else if (errorDescription.contains(GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA_MSG)) {
+ responseCode = SERVICE_TOSCA_MISSING;
+ } else if (errorDescription.contains(GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION_MSG)) {
+ responseCode = INVALID_CLIENT_CONFIGURATION;
+ } else if (errorDescription.contains(GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED_MSG)) {
+ responseCode = UNABLE_TO_GENERATE_ARTIFACT;
+ } else if (errorDescription.contains(GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND.split("%s")[0])) {
+ responseCode = MISSING_SYSTME_PROPERY_CONFIGURATION;
+ } else if (errorDescription.contains(GENERATOR_AAI_CONFIGFILE_NOT_FOUND.split("%s")[0])) {
+ responseCode = MISSING_CONFIG_PROPERTIES_FILE;
+ } else if (errorDescription.contains(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND.split("%s")[0])) {
+ responseCode = MISSING_WIDGET_CONFIGURATION;
+ } else if (errorDescription.contains(GENERATOR_AAI_ERROR_INVALID_ID.split("%s")[0])) {
+ responseCode = INVALID_ID_VALUE;
+ } else if (errorDescription.contains(GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA.split("%s")[0]))
+ {
+ responseCode = RESOURCE_TOSCA_MISSING;
+ } else if(errorDescription.contains(GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION)) {
+ responseCode = MISSING_SERVICE_VERSION;
+ } else if(errorDescription.contains(GENERATOR_AAI_INVALID_SERVICE_VERSION))
+ {
+ responseCode = INVALID_SERVICE_VERSION;
+ } else if(errorDescription.contains(GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA.
+ split("%s")[0])) {
+ responseCode = MISSING_RESOURCE_VERSION;
+ } else if(errorDescription.contains(
+ GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA.split("%s")[0])) {
+ responseCode = INVALID_RESOURCE_VERSION;
+ } else if(errorDescription.contains(GENERATOR_AAI_PROVIDING_SERVICE_MISSING.split("%s")[0])) {
+ responseCode = MISSING_PRO_SERVICE;
+ } else if(errorDescription.contains(
+ GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING.split("%s")[0])) {
+ responseCode = MISSING_PRO_SERVICE_METADATA;
+ }
+ return responseCode.getValue();
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java
new file mode 100644
index 0000000000..0ebe41c9a4
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java
@@ -0,0 +1,1745 @@
+/*-
+ * ============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.generator;
+
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGFILE_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLPROP_NOT_FOUND;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_MISSING;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION;
+
+import org.apache.commons.io.FileUtils;
+import org.openecomp.sdc.generator.aai.model.Resource;
+import org.openecomp.sdc.generator.aai.model.Service;
+import org.openecomp.sdc.generator.aai.model.Widget;
+import org.openecomp.sdc.generator.aai.tosca.GroupDefinition;
+import org.openecomp.sdc.generator.aai.tosca.NodeTemplate;
+import org.openecomp.sdc.generator.aai.tosca.ToscaTemplate;
+import org.openecomp.sdc.generator.data.AdditionalParams;
+import org.openecomp.sdc.generator.aai.xml.Model;
+import org.openecomp.sdc.generator.aai.xml.ModelElement;
+import org.openecomp.sdc.generator.aai.xml.ModelElements;
+import org.openecomp.sdc.generator.aai.xml.ModelVer;
+import org.openecomp.sdc.generator.aai.xml.Relationship;
+import org.openecomp.sdc.generator.aai.xml.RelationshipData;
+import org.openecomp.sdc.generator.data.Artifact;
+import org.openecomp.sdc.generator.data.ArtifactType;
+import org.openecomp.sdc.generator.data.GenerationData;
+import org.openecomp.sdc.generator.data.GeneratorConstants;
+import org.openecomp.sdc.generator.data.GeneratorUtil;
+import org.openecomp.sdc.generator.data.GroupType;
+import org.openecomp.sdc.generator.impl.ArtifactGenerationServiceImpl;
+import org.testng.Assert;
+import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.util.*;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+@SuppressWarnings("Duplicates")
+public class ArtifactGenerationServiceTest {
+
+ private static final String aaiArtifactType = ArtifactType.AAI.name();
+ private static final String aaiArtifactGroupType = GroupType.DEPLOYMENT.name();
+ private static final String generatorConfig = "{\"artifactTypes\": [\"OTHER\",\"AAI\"]}";
+ Properties properties = new Properties();
+ Map<String, String> additionalParams = new HashMap();
+ Map<String, String> resourcesVersion = new HashMap<>();
+
+ @BeforeSuite
+ public void loadProperties() throws Exception{
+ loadConfigFromClasspath(properties);
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(), "1.0");
+ }
+
+ @Test
+ public void testArtifactGeneration() {
+ // Sunny day scenario service with VF anf vfmodule
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ /*for( int i = 0 ; i < resultData.size() ; i++) {
+ Artifact artifact = resultData.get(i);
+ String fileName = artifact.getName();
+ while(fileName.contains(":")){
+ fileName = fileName.replace(":","");
+ }
+ File targetFile =new File("src/test/resources/"+fileName);
+ OutputStream outStream = new FileOutputStream(targetFile);
+ outStream.write(Base64.getDecoder().decode(artifact.getPayload()));
+ }*/
+
+ Assert.assertEquals(resultData.size(),5); // 1-service,1-VF-resource,1-vfmodule and 2
+ // others
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testWidgetinServiceTosca() {
+ // Sunny day scenario service with VF and extra widget like CP anf vf has vfmodule without
+ // member
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testWidgetinServiceTosca/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+ Assert.assertEquals(resultData.size(),5); // 1-service,1-VF-resource,1-vfmodule and 2
+ // others
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testSameVLdifferentVersion() {
+ // Sunny day scenario service with VF and extra widget like CP anf vf has vfmodule without
+ // member
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testSameVLdifferentVersion/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+ Assert.assertEquals(resultData.size(),8);
+ // others
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceAndL3Network() {
+ // Sunny day scenario service with allotted resource and L3-network
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai2/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Assert.assertEquals(resultData.size(),5);
+ // and 2
+ // others
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenMissingTosca() {
+ try {
+ //Missing Service tosca test case
+ String aaiResourceBasePaths = "testArtifactGeneration2/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Service tosca missing from list of input artifacts");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test(dependsOnMethods = {"testWhenMissingTosca"})
+ public void testWhenInvaildConfig() {
+ try {
+ //Invalid config test case
+ String generatorConfig1 = "{\"artifactTypes\": [\"ABC\"]}";
+ String aaiResourceBasePaths = "testArtifactGeneration2/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig1, additionalParams);
+ Assert.assertEquals(data.getErrorData().get("ARTIFACT_GENERATOR_INVOCATION_ERROR").get(0),"Invalid Client Configuration");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenOnlyServToscaNoResTosca() {
+ try {
+ //Testing only service tosca no resource Tosca
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ String aaiResourceBasePaths = "testArtifactGeneration4/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ List<Artifact> resultData = data.getResultData();
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ }
+ Assert.assertEquals(resultData.size(),3); // 1-service and 2-Others
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenInvaildYaml() {
+ try {
+ //Invalid Yaml file test case
+ String aaiResourceBasePaths = "testArtifactGeneration5/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Invalid format for Tosca YML : " + inputArtifacts.get(0).getName());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenExtraResToscaNotPartOfServ() {
+ try {
+ // Valid scenario with extra resource tosca which is not part of Service
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ String aaiResourceBasePaths = "testArtifactGeneration6/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ List<Artifact> resultData = data.getResultData();
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ }
+ Assert.assertEquals(resultData.size(),3); // 1-service and 2 Others
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+
+ @Test
+ public void testWhenInvUuIdAttrMissing() {
+ try {
+ // mandatory attribute <invariantUUID> missing
+ String aaiResourceBasePaths = "testArtifactGeneration8/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <invariantUUID> missing in Artifact: <" +
+ inputArtifacts.get(0).getName() + ">");
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testErrorWhenInvalidInvId() {
+ try {
+ //Invariant Id in service tosca of length not 36
+ String aaiResourceBasePaths = "testErrorWhenInvalidInvId/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),String.format(GENERATOR_AAI_ERROR_INVALID_ID,
+ "invariantUUID",inputArtifacts.get(0).getName()));
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testWhenUuIdAttrMissing() {
+ try {
+ //mandatory attribute <UUID> missing
+ String aaiResourceBasePaths = "testArtifactGeneration9/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <UUID> missing in Artifact: <" +
+ inputArtifacts.get(0).getName() + ">");
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testErrorWhenInvalidUuId() {
+ try {
+ //UUID Id in service tosca of length not 36
+ String aaiResourceBasePaths = "testErrorWhenInvalidUuId/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),String.format(GENERATOR_AAI_ERROR_INVALID_ID,
+ "UUID",inputArtifacts.get(0).getName()));
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testWhenNameAttrMissing() {
+ try {
+ //mandatory attribute <name> missing
+ String aaiResourceBasePaths = "testArtifactGeneration10/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <name> missing in Artifact: <" +
+ inputArtifacts.get(0).getName() + ">");
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test //(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenVfModInvUuIdAttrMissing() {
+ try {
+ //mandatory attribute <vfModuleModelInvariantUUID> missing
+ List<Artifact> inputArtifacts = new ArrayList<>();
+ InputStream fis1 = ArtifactGenerationServiceTest.class.getResourceAsStream("/service_vmme_template_ModInvUUID.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_ModInvUUID.yml");
+ fis1.close();
+
+ InputStream fis2 = ArtifactGenerationServiceTest.class.getResourceAsStream("/vf_vmme_template_ModInvUUID.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_ModInvUUID.yml");
+ fis2.close();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <vfModuleModelInvariantUUID> missing in Artifact: <" +
+ inputArtifacts.get(1).getName() + ">");
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ public static void readPayload(List<Artifact> inputArtifacts,InputStream fis, String fileName) throws
+ IOException {
+ byte[] payload = new byte[fis.available()];
+ fis.read(payload);
+ String checksum = GeneratorUtil.checkSum(payload);
+ byte[] encodedPayload = GeneratorUtil.encode(payload);
+ Artifact artifact = new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
+ artifact.setName(fileName);
+ artifact.setLabel(fileName);
+ artifact.setDescription(fileName);
+ artifact.setVersion("1.0");
+ System.out.println(artifact.getName());
+ inputArtifacts.add(artifact);
+ }
+
+ @Test
+ public void testWhenInvalidVfModInvUuIdAttr() {
+ try {
+ //invalid id since not of length 36 for <vfModuleModelInvariantUUID>
+ List<Artifact> inputArtifacts = new ArrayList<>();
+ InputStream fis1 = ArtifactGenerationServiceTest.class.getResourceAsStream("/service_vmme_template_InvalidVfModInvUuIdAttr.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_InvalidVfModInvUuIdAttr.yml");
+ fis1.close();
+
+ InputStream fis2 = ArtifactGenerationServiceTest.class.getResourceAsStream("/vf_vmme_template_InvalidVfModInvUuIdAttr.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_InvalidVfModInvUuIdAttr.yml");
+ fis2.close();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),String.format(GENERATOR_AAI_ERROR_INVALID_ID,
+ "vfModuleModelInvariantUUID", inputArtifacts.get(1).getName() ));
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test //(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenVfModNameAttrMissing() {
+ try {
+ //mandatory attribute <vfModuleModelName> missing
+ List<Artifact> inputArtifacts = new ArrayList<>();
+ InputStream fis1 = ArtifactGenerationServiceTest.class.getResourceAsStream("/service_vmme_template_ModelName.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_ModelName.yml");
+ fis1.close();
+
+ InputStream fis2 = ArtifactGenerationServiceTest.class.getResourceAsStream("/vf_vmme_template_ModelName.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_ModelName.yml");
+ fis2.close();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <vfModuleModelName> missing in Artifact: <" +
+ inputArtifacts.get(1).getName() + ">");
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ /*public static void readPayload(List<Artifact> inputArtifacts,InputStream fis, String fileName)
+ throws
+ IOException {
+ byte[] payload = new byte[fis.available()];
+ fis.read(payload);
+ String checksum = GeneratorUtil.checkSum(payload);
+ byte[] encodedPayload = GeneratorUtil.encode(payload);
+ Artifact artifact = new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
+ artifact.setName(fileName);
+ artifact.setLabel(fileName);
+ artifact.setDescription(fileName);
+ artifact.setVersion("1.0");
+ System.out.println(artifact.getName());
+ inputArtifacts.add(artifact);
+ }*/
+
+ @Test //(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenVfModUuIdAttrMissing() {
+ try {
+ //mandatory attribute <vfModuleModelUUID> missing in Artifact
+ List<Artifact> inputArtifacts = new ArrayList<>();
+ InputStream fis1 = ArtifactGenerationServiceTest.class.getResourceAsStream("/service_vmme_template_ModelUUID.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_ModelUUID.yml");
+ fis1.close();
+
+ InputStream fis2 = ArtifactGenerationServiceTest.class.getResourceAsStream("/vf_vmme_template_ModelUUID.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_ModelUUID.yml");
+ fis2.close();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory " +
+ "attribute <vfModuleModelUUID> missing in Artifact: <" +
+ inputArtifacts.get(1).getName() + ">");
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testWhenInvalidVfModUuIdAttr() {
+ try {
+ //invalid id since not of length 36 for <vfModuleModelUUID>
+ List<Artifact> inputArtifacts = new ArrayList<>();
+ InputStream fis1 = ArtifactGenerationServiceTest.class.getResourceAsStream("/service_vmme_template_InvalidVfModUuIdAttr.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_InvalidVfModUuIdAttr.yml");
+ fis1.close();
+
+ InputStream fis2 = ArtifactGenerationServiceTest.class.getResourceAsStream("/vf_vmme_template_InvalidVfModUuIdAttr.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_InvalidVfModUuIdAttr.yml");
+ fis2.close();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),String.format(GENERATOR_AAI_ERROR_INVALID_ID,
+ "vfModuleModelUUID", inputArtifacts.get(1).getName() ));
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test //(dependsOnMethods = {"testArtifactGeneration"})
+ public void testWhenVfModVersionAttrMissing() {
+ try {
+ //mandatory attribute <vfModuleModelVersion> missing
+ List<Artifact> inputArtifacts = new ArrayList<>();
+ InputStream fis1 = ArtifactGenerationServiceTest.class.getResourceAsStream("/service_vmme_template_ModelVersion.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_ModelVersion.yml");
+ fis1.close();
+
+ InputStream fis2 = ArtifactGenerationServiceTest.class.getResourceAsStream("/vf_vmme_template_ModelVersion.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_ModelVersion.yml");
+ fis2.close();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(
+ data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <vfModuleModelVersion> missing in Artifact: <" +
+ inputArtifacts.get(1).getName() + ">");
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testErrorWhenNoSystemPropConfigured() throws Exception {
+ String configLoc = System.getProperty("artifactgenerator.config");
+ try {
+ System.clearProperty("artifactgenerator.config");
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+ Assert.assertEquals(data.getErrorData().
+ get("AAI").get(0),GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ System.setProperty("artifactgenerator.config",configLoc);
+ }
+ }
+
+ @Test
+ public void testErrorWhenNoWidgetInConfig() throws Exception {
+ String configLoc = System.getProperty("artifactgenerator.config");
+ final File configFile = new File(configLoc);
+ String configDir = configLoc.substring(0, configLoc.lastIndexOf(File.separator));
+ final File tempFile = new File(configDir + File.separator + "temp.properties");
+ try {
+ //copy orignal Artifact-Generator.properties to temp.properties for backup
+ FileUtils.copyFile(configFile, tempFile);
+
+ String serviceWidgetName = ArtifactType.AAI.name()+".model-version-id."+Widget.getWidget
+ (Widget.Type.SERVICE)
+ .getName();
+ String assertMsg = ArtifactType.AAI.name() + ".model-version-id." +Widget.getWidget
+ (Widget.Type.SERVICE).getName();
+ OutputStream fos = new FileOutputStream(new File(configLoc));
+ String serviceWidgetId = properties.getProperty(serviceWidgetName);
+
+ //Remove property from Artifact-Generator.properties
+ properties.remove(serviceWidgetName);
+ properties.store(fos,null);
+ fos.close();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+ String errMsg = String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,assertMsg);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),errMsg);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ if(tempFile.exists()){
+ //Revert the changes
+ FileUtils.copyFile(tempFile, configFile);
+ loadConfigFromClasspath(properties);
+ tempFile.delete();
+ }
+ }
+ }
+
+ @Test
+ public void testErrorWhenNoFileAtConfigLocation() throws Exception {
+ String configLoc = System.getProperty("artifactgenerator.config");
+ try {
+ System.setProperty("artifactgenerator.config",configLoc + File.separator + "testErrorWhenNoFileAtConfigLocation");
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(GENERATOR_AAI_CONFIGFILE_NOT_FOUND,System.getProperty
+ ("artifactgenerator.config")));
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ System.setProperty("artifactgenerator.config",configLoc);
+ }
+ }
+
+ @Test
+ public void testErrorWhenNoServiceVersion() {
+ // scenario service with VF anf vfmodule but no service version in additional parameter
+ try {
+ additionalParams.clear();
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithServiceVersion() {
+ // Sunny day scenario service with VF anf vfmodule and service version as adiitional parameter
+ try {
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"9.0");
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ /*for( int i = 0 ; i < resultData.size() ; i++) {
+ Artifact artifact = resultData.get(i);
+ String fileName = artifact.getName();
+ while(fileName.contains(":")){
+ fileName = fileName.replace(":","");
+ }
+ File targetFile =new File("src/test/resources/"+fileName);
+ OutputStream outStream = new FileOutputStream(targetFile);
+ outStream.write(Base64.getDecoder().decode(artifact.getPayload()));
+ }*/
+
+ Assert.assertEquals(resultData.size(),5); // 1-service,1-VF-resource,1-vfmodule and 2
+ // others
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+ }
+ }
+
+ @Test
+ public void testErrorWhenInvalidServiceVersion() {
+ // scenario service with VF anf vfmodule but invalid service version in additional parameter
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "aai/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1");
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.1");
+ data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.0");
+ data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+ }
+ }
+
+ @Test
+ public void testMissingResourceTosca() {
+ try {
+ //Service with resource but seperate resource tosca not coming as input.
+ String aaiResourceBasePaths = "missingResourceTosca/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Cannot generate artifacts. Resource Tosca missing for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+ @Test
+ public void testMissingVLTosca() {
+ try {
+ //Service with VL but seperate VL tosca not coming as input artifact.
+ String aaiResourceBasePaths = "missingVLTosca/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Cannot generate artifacts. Resource Tosca missing for resource with UUID: <3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468>");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testErrorWhenNoResourceVersion() {
+ // scenario service with VF but missing resource version in service tosca
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testErrorWhenNoResourceVersion/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ "Invalid Service definition mandatory attribute version missing for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testErrorWhenInvalidResourceVersion1() {
+ // scenario service with VF but invalid resource version 0.0 in service tosca
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testErrorWhenInvalidResourceVersion1/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ "Cannot generate artifacts. Invalid Resource version in Service tosca for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testErrorWhenInvalidResourceVersion2() {
+ // scenario service with VF but invalid resource version 1 in service tosca
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testErrorWhenInvalidResourceVersion2/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ "Cannot generate artifacts. Invalid Resource version in Service tosca for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceWithIpMuxAndTunnelXConn() {
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testArtifactGeneration15/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Assert.assertEquals(resultData.size(),5);
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ //@Test
+ public void testErrorWhenAllottedResourceWithOutProvidingServiceId() {
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testErrorWhenAllottedResourceWithOutDependingServiceId/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+ (GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING, "707b2850-e830-4b00-9902-879f44ac05a4"));
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithoutAllottedResource() {
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testArtifactGeneration16/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+ (GENERATOR_AAI_PROVIDING_SERVICE_MISSING, "a54a5235-b69d-4f8a-838b-d011e6783fa5"));
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceIpmuxSameInvariantDiffVersion() {
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testArtifactGeneration17/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Assert.assertEquals(resultData.size(),5);
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceIpmuxSameInvariantSameVersion() {
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testArtifactGeneration18/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+
+ Assert.assertEquals(resultData.size(),4);
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceIpmuxWithGroups() {
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testAllotedResourceWithDependingSerWithGroups/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Assert.assertEquals(resultData.size(),5);
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceWithVF() {
+ try {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList<>();
+ String aaiResourceBasePaths = "testArtifactGenerationAllottedResourceWithVF/";
+ List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ if (data.getErrorData().isEmpty()) {
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Assert.assertEquals(resultData.size(),7);
+ outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+ testServiceTosca(toscas, outputArtifactMap);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+ } else {
+ Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+
+ //@Test
+ public void testServiceTosca(List<ToscaTemplate> toscas, Map<String, Model> outputArtifactMap) {
+ try {
+ ToscaTemplate serviceTosca = getServiceTosca(toscas);
+ if (serviceTosca == null) {
+ Assert.fail("Service Tosca not found");
+ }
+ serviceTosca.getMetadata().put("version", "1.0");
+ Service service = new Service();
+ service.populateModelIdentificationInformation(serviceTosca.getMetadata());
+ String serviceNameVersionId = service.getModelNameVersionId();
+ Model serviceAAIModel = getAAIModelByNameVersionId(serviceNameVersionId, outputArtifactMap);
+ validateServiceModelMetadata(service, serviceAAIModel);
+ //Validate Service instance base widget
+ ModelVer modelVersion = serviceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedServiceBaseWidgetElements =
+ getModelElementbyRelationshipValue( modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.SERVICE).getId());
+ validateMatchedModelElementsInService(matchedServiceBaseWidgetElements,
+ Widget.getWidget(Widget.Type.SERVICE).getName());
+
+ validateWidgetIds(matchedServiceBaseWidgetElements, Widget.getWidget(Widget.Type.SERVICE).getName(),
+ Widget.getWidget(Widget.Type.SERVICE).getWidgetId());
+
+ ModelElements baseServiceWidgetModelElements =
+ matchedServiceBaseWidgetElements.get(0).getModelElements();
+
+
+ Map<String, String> nodeTemplateIdTypeStore = getNodeTemplateTypeStore(serviceTosca);
+ if (nodeTemplateIdTypeStore != null) {
+ for (String key : nodeTemplateIdTypeStore.keySet()) {
+ if (nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vf")) {
+ List<ModelElement> matchedResourceElements =
+ getModelElementbyRelationshipValue(baseServiceWidgetModelElements, key);
+ if (nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vf.allottedResource")){
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+ }else {
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.VF).getName());
+ }
+
+ //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+ Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+ .getRelationship().get(0)
+ .getRelationshipData().get(0).getRelationshipValue(),key);
+
+ Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+ .get(key+"-INV_UID"));
+ } else if(nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vl")){
+ //validate l3-network in service tosca
+ List<ModelElement> matchedResourceElements =
+ getModelElementbyRelationshipValue(baseServiceWidgetModelElements, key);
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.L3_NET).getName());
+ //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+ Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+ .getRelationship().get(0)
+ .getRelationshipData().get(0).getRelationshipValue(),key);
+
+ Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+ .get(key+"-INV_UID"));
+ }
+ }
+
+
+ System.out.println();
+
+ }
+ } catch (IllegalArgumentException e) {
+ Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+ }
+
+ private void validateWidgetIds(List<ModelElement> matchedServiceBaseWidgetElements,
+ String widgetName, String widgetInvUuId) {
+ Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(0).getRelationshipValue(), properties.getProperty(ArtifactType.AAI.name()
+ + ".model-version-id."+ widgetName));
+
+ Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(1).getRelationshipValue(), widgetInvUuId);
+ }
+
+
+ public void testL3NetworkResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+ resourceTosca) {
+ try {
+ if (resourceTosca != null) {
+ Resource resource = new Resource();
+ resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+ String resourceNameVersionId = resource.getModelNameVersionId();
+ Model resourceAAIModel =
+ getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+ if (resourceAAIModel != null) {
+ validateResourceModelMetadata(resource, resourceAAIModel);
+ //Validate Resource instance base widget
+
+ ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.L3_NET).getId());
+ validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+ Widget.getWidget(Widget.Type.L3_NET).getName());
+
+ validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.L3_NET).getName(),
+ Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+
+ }else {
+ System.out.println("Resource mapping not found for " + resourceNameVersionId);
+ }
+ }
+
+ }catch (IllegalArgumentException e) {
+ Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+
+ }
+
+ public void testAllottedResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+ resourceTosca) {
+ try {
+ if (resourceTosca != null) {
+ Resource resource = new Resource();
+ resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+ String resourceNameVersionId = resource.getModelNameVersionId();
+ Model resourceAAIModel =
+ getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+ if (resourceAAIModel != null) {
+ validateResourceModelMetadata(resource, resourceAAIModel);
+ //Validate Resource instance base widget
+
+ ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getId());
+ validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+
+ validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName(),
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getWidgetId());
+
+ Map<String, Object> dependingServiceDetails = getProvidingServiceDetails(resourceTosca);
+
+ ModelElements containedModelElements = modelVersion.getModelElements().getModelElement().
+ get(0).getModelElements();
+ Assert.assertEquals( containedModelElements.getModelElement().get(0).getRelationshipList()
+ .getRelationship().get(0).getRelationshipData().get(0).getRelationshipValue(),
+ dependingServiceDetails.get("providing_service_uuid"));
+
+ Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+ .getRelationship().get(0).getRelationshipData().get(1).getRelationshipValue(),
+ dependingServiceDetails.get("providing_service_invariant_uuid"));
+
+ if("Allotted Resource".equals(resourceTosca.getMetadata().get("category")) &&
+ "Tunnel XConnect".equals(resourceTosca.getMetadata().get("subcategory"))) {
+
+ List<ModelElement> matchedTunnelXConnectWidgetElements =
+ getModelElementbyRelationshipValue(containedModelElements,
+ Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getId());
+ validateMatchedModelElementsInService(matchedTunnelXConnectWidgetElements,
+ Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName());
+
+ validateWidgetIds(matchedTunnelXConnectWidgetElements, Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName(),
+ Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getWidgetId());
+ }
+
+ }else {
+ System.out.println("Resource mapping not found for " + resourceNameVersionId);
+ }
+ }
+
+ }catch (IllegalArgumentException e) {
+ Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+
+ }
+
+ public Map<String, Object> getProvidingServiceDetails(ToscaTemplate resourceTemplate) {
+Set<String> keys = resourceTemplate.getTopology_template().getNode_templates().keySet();
+
+Map<String, Object> nodeProperties =null;
+for(String key : keys) {
+NodeTemplate node = resourceTemplate.getTopology_template().getNode_templates().get(key);
+if(node.getType().equals("org.openecomp.resource.vfc.AllottedResource")) {
+nodeProperties = node.getProperties();
+ }
+}
+
+ return nodeProperties;
+ }
+
+ public void testVfTosca(Map<String, Model> outputArtifactMap , ToscaTemplate resourceTosca) {
+ try {
+ //ToscaTemplate resourceTosca = getResourceTosca(toscas);
+ //resourceTosca.getTopology_template().getGroups().
+ if (resourceTosca != null) {
+ Resource resource = new Resource();
+ resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+ String resourceNameVersionId = resource.getModelNameVersionId();
+ Model resourceAAIModel =
+ getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+ if (resourceAAIModel != null) {
+ validateResourceModelMetadata(resource, resourceAAIModel);
+ //Validate Resource instance base widget
+
+ ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.VF).getId());
+ validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+ Widget.getWidget(Widget.Type.VF).getName());
+
+ validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.VF).getName(),
+ Widget.getWidget(Widget.Type.VF).getWidgetId());
+
+ ModelElements baseResourceWidgetModelElements =
+ matchedVFBaseWidgetElements.get(0).getModelElements();
+ if (resourceTosca.getTopology_template() != null) {
+ Map<String, String> groupIdTypeStore = getGroupsTypeStore(resourceTosca);
+
+ if (baseResourceWidgetModelElements.getModelElement().size() !=
+ groupIdTypeStore.size()) {
+ Assert.fail("Missing VFModule in VF model.xml");
+ }
+
+ for (String key : groupIdTypeStore.keySet()) {
+
+ List<ModelElement> matchedResourceElements =
+ getModelElementbyRelationshipValue(baseResourceWidgetModelElements, key);
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.VFMODULE).getName());
+ Model resourceAAIVFModel = getAAIModelByNameVersionId(key, outputArtifactMap);
+ Map<String, String> vfModuleModelMetadata =
+ getVFModuleMetadataTosca(resourceTosca, key);
+ Map<String, Object> vfModuleMembers = getVFModuleMembersTosca(resourceTosca, key);
+
+ validateVFModelMetadata(vfModuleModelMetadata, resourceAAIVFModel);
+
+
+ ModelVer modelVfVersion = resourceAAIVFModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFModuleBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVfVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.VFMODULE).getId());
+ validateMatchedModelElementsInService(matchedVFModuleBaseWidgetElements,
+ Widget.getWidget(Widget.Type.VFMODULE).getName());
+ validateWidgetIds(matchedVFModuleBaseWidgetElements, Widget.getWidget(Widget.Type.VFMODULE)
+ .getName(), Widget.getWidget(Widget.Type.VFMODULE).getWidgetId());
+
+ ModelElements baseResourceVFModuleWidgetModelElements =
+ matchedVFModuleBaseWidgetElements.get(0).getModelElements();
+ if (vfModuleMembers.containsKey("l3-network")) {
+ //Validate l3
+ List<ModelElement> matchedL3NetworkElements =
+ getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+ Widget.getWidget(Widget.Type.L3_NET).getId());
+ validateMatchedModelElementsInService(matchedL3NetworkElements,
+ Widget.getWidget(Widget.Type.L3_NET).getName());
+ validateWidgetIds(matchedL3NetworkElements, Widget.getWidget(Widget.Type.L3_NET)
+ .getName(), Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+ }
+ if (vfModuleMembers.containsKey("vserver")) {
+ //Validate vserver
+ List<ModelElement> matchedVserverElements =
+ getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+ Widget.getWidget(Widget.Type.VSERVER).getId());
+ validateMatchedModelElementsInService(matchedVserverElements,
+ Widget.getWidget(Widget.Type.VSERVER).getName());
+ ModelElements vserverWidgetModelElements =
+ matchedVserverElements.get(0).getModelElements();
+
+ validateWidgetIds(matchedVserverElements, Widget.getWidget(Widget.Type.VSERVER)
+ .getName(), Widget.getWidget(Widget.Type.VSERVER).getWidgetId());
+
+
+ //Validate vserver->vfc
+ List<ModelElement> matchedVfcElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.VFC).getId());
+ validateMatchedModelElementsInService(matchedVfcElements,
+ Widget.getWidget(Widget.Type.VFC).getName());
+ validateWidgetIds(matchedVfcElements, Widget.getWidget(Widget.Type.VFC).getName(),
+ Widget.getWidget(Widget.Type.VFC).getWidgetId());
+
+ //Validate vserver->Image
+ List<ModelElement> matchedImageElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.IMAGE).getId());
+ validateMatchedModelElementsInService(matchedImageElements,
+ Widget.getWidget(Widget.Type.IMAGE).getName());
+ validateWidgetIds(matchedImageElements, Widget.getWidget(Widget.Type.IMAGE)
+ .getName(), Widget.getWidget(Widget.Type.IMAGE).getWidgetId());
+
+
+ //Validate vserver->Flavor
+ List<ModelElement> matchedFlavorElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.FLAVOR).getId());
+ validateMatchedModelElementsInService(matchedFlavorElements,
+ Widget.getWidget(Widget.Type.FLAVOR).getName());
+ validateWidgetIds(matchedFlavorElements, Widget.getWidget(Widget.Type.FLAVOR).getName(),
+ Widget.getWidget(Widget.Type.FLAVOR).getWidgetId());
+
+ //Validate vserver->Tenant
+ List<ModelElement> matchedTenantElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.TENANT).getId());
+ validateMatchedModelElementsInService(matchedTenantElements,
+ Widget.getWidget(Widget.Type.TENANT).getName());
+ validateWidgetIds(matchedTenantElements, Widget.getWidget(Widget.Type.TENANT).getName(),
+ Widget.getWidget(Widget.Type.TENANT).getWidgetId());
+
+ //Validate vserver->l-interface
+ if (vfModuleMembers.containsKey("l-interface")) {
+ List<ModelElement> matchedLinterfaceElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.LINT).getId());
+ validateMatchedModelElementsInService(matchedLinterfaceElements,
+ Widget.getWidget(Widget.Type.LINT).getName());
+ validateWidgetIds(matchedLinterfaceElements, Widget.getWidget(Widget.Type.LINT).getName(),
+ Widget.getWidget(Widget.Type.LINT).getWidgetId());
+ }
+ //Validate vserver->volume
+ if (vfModuleMembers.containsKey("volume")) {
+ List<ModelElement> matchedVolumeElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.VOLUME).getId());
+ validateMatchedModelElementsInService(matchedVolumeElements,
+ Widget.getWidget(Widget.Type.VOLUME).getName());
+ validateWidgetIds(matchedVolumeElements, Widget.getWidget(Widget.Type.VOLUME).getName(),
+ Widget.getWidget(Widget.Type.VOLUME).getWidgetId());
+ }
+ }
+ }
+ }
+ } else {
+ System.out.println("Resource mapping not found for " + resourceNameVersionId);
+ }
+ }
+
+ } catch (IllegalArgumentException e) {
+ Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+
+ }
+
+ private void validateMatchedModelElementsInService(List<ModelElement> matchedModelElements,
+ String modelType) {
+ if (matchedModelElements.isEmpty()) {
+ Assert.fail(modelType + " not present ");
+ }
+ if (matchedModelElements.size() > 1) {
+ Assert.fail("More than one " + modelType + " present ");
+ }
+ }
+
+ private Map<String, String> getNodeTemplateTypeStore(ToscaTemplate toscaTemplate) {
+ if (toscaTemplate.getTopology_template() != null) {
+ Map<String, NodeTemplate> nodeTemplateMap =
+ toscaTemplate.getTopology_template().getNode_templates();
+ Map<String, String> nodeTemplateIdTypeStore = new LinkedHashMap<>();
+ if (nodeTemplateMap != null) {
+ for (Map.Entry<String, NodeTemplate> e : nodeTemplateMap.entrySet()) {
+ String uuid = e.getValue().getMetadata().get("resourceUUID");
+ if (GeneratorUtil.isEmpty(uuid)) {
+ uuid = e.getValue().getMetadata().get("UUID");
+ if (GeneratorUtil.isEmpty(uuid)) {
+ Assert.fail("UUID Not found");
+ }
+ }
+ if(e.getValue().getType().contains("org.openecomp.resource.vf.")&& (e.getValue()
+ .getMetadata().get("category").equals("Allotted Resource")))
+ {
+ e.getValue().setType("org.openecomp.resource.vf.allottedResource");
+ }
+ nodeTemplateIdTypeStore.put(uuid, e.getValue().getType());
+ resourcesVersion.put(uuid,e.getValue().getMetadata().get
+ ("version"));
+ //Populate invraintUuId for V9
+ String invUuId = e.getValue().getMetadata().get("invariantUUID");
+ nodeTemplateIdTypeStore.put(uuid+"-INV_UID" , invUuId);
+ }
+ }
+ return nodeTemplateIdTypeStore;
+ } else {
+ return null;
+ }
+ }
+
+ private Map<String, String> getGroupsTypeStore(ToscaTemplate toscaTemplate) {
+ if (toscaTemplate.getTopology_template() != null) {
+ Map<String, GroupDefinition> groupDefinitionMap =
+ toscaTemplate.getTopology_template().getGroups();
+ Map<String, String> groupDefinitionIdTypeStore = new LinkedHashMap<>();
+ if (groupDefinitionMap != null) {
+ for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+ if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+ String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+ if (GeneratorUtil.isEmpty(uuid)) {
+ uuid = e.getValue().getMetadata().get("UUID");
+ if (GeneratorUtil.isEmpty(uuid)) {
+ Assert.fail("UUID Not found");
+ }
+ }
+ groupDefinitionIdTypeStore.put(uuid, e.getValue().getType());
+ }
+ }
+ }
+ return groupDefinitionIdTypeStore;
+ } else {
+ return null;
+ }
+
+ }
+
+ private void validateServiceModelMetadata(Service serviceToscaModel, Model generatedAAIModel) {
+ ModelVer modelVersion = generatedAAIModel.getModelVers().getModelVer().get(0);
+ Assert.assertEquals(serviceToscaModel.getModelNameVersionId(),
+ modelVersion.getModelVersionId());
+ Assert.assertEquals(serviceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+ Assert.assertEquals(serviceToscaModel.getModelName(), modelVersion.getModelName());
+ Assert.assertEquals(additionalParams.get(AdditionalParams.ServiceVersion.getName()), modelVersion
+ .getModelVersion());
+ Assert.assertEquals(serviceToscaModel.getModelDescription(),
+ modelVersion.getModelDescription());
+
+ }
+
+ private void validateResourceModelMetadata(Resource resouerceToscaModel,
+ Model generatedAAIModel) {
+ ModelVer modelVersion = generatedAAIModel.getModelVers().getModelVer().get(0);
+ Assert.assertEquals(resouerceToscaModel.getModelNameVersionId(),
+ modelVersion.getModelVersionId());
+ Assert.assertEquals(resouerceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+ Assert.assertEquals(resouerceToscaModel.getModelName(), modelVersion.getModelName());
+ Assert
+ .assertEquals(resouerceToscaModel.getModelVersion(), modelVersion.getModelVersion());
+ Assert.assertEquals(resouerceToscaModel.getModelDescription(),
+ modelVersion.getModelDescription());
+
+ }
+
+ private void validateVFModelMetadata(Map<String, String> vfModuleModelMetadata,
+ Model generatedAAIModel) {
+ ModelVer modelVersion = generatedAAIModel.getModelVers().getModelVer().get(0);
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelUUID"),
+ modelVersion.getModelVersionId());
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelInvariantUUID"),
+ generatedAAIModel.getModelInvariantId());
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelName"),
+ modelVersion.getModelName());
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelVersion"),
+ modelVersion.getModelVersion());
+ Assert.assertEquals(vfModuleModelMetadata.get("vf_module_description"),
+ modelVersion.getModelDescription());
+ }
+
+ private Model getAAIModelByNameVersionId(String nameVersionId,
+ Map<String, Model> outputArtifactMap) {
+ return outputArtifactMap.get(nameVersionId);
+ }
+
+ private List<ModelElement> getModelElementbyRelationshipValue(ModelElements modelElements,
+ String relationshipValue) {
+ List<ModelElement> matchedModelElements = new ArrayList<>();
+ if (modelElements != null) {
+ List<ModelElement> modelElementList = modelElements.getModelElement();
+ for (ModelElement element : modelElementList) {
+ List<Relationship> relationshipList = element.getRelationshipList().getRelationship();
+ for (Relationship r : relationshipList) {
+ List<RelationshipData> relationshipDataList = r.getRelationshipData();
+ for (RelationshipData relationshipData : relationshipDataList) {
+ if (relationshipData.getRelationshipValue().equals(relationshipValue)) {
+ matchedModelElements.add(element);
+ }
+ }
+ }
+ }
+ }
+ return matchedModelElements;
+ }
+
+ private Map<String, Model> populateAAIGeneratedModelStore(List<Artifact> resultData) {
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ for (Artifact outputArtifact : resultData) {
+ if (outputArtifact.getType().equals(ArtifactType.MODEL_INVENTORY_PROFILE.name())) {
+ byte[] decodedPayload = GeneratorUtil.decoder(outputArtifact.getPayload());
+ Model aaiModel = getUnmarshalledArtifactModel(new String(decodedPayload));
+ List<ModelVer> modelVersions = aaiModel.getModelVers().getModelVer();
+ outputArtifactMap.put(modelVersions.get(0).getModelVersionId(), aaiModel);
+ }
+ }
+ return outputArtifactMap;
+ }
+
+ private Model getUnmarshalledArtifactModel(String aaiModel) {
+ JAXBContext jaxbContext;
+ try {
+ jaxbContext = JAXBContext.newInstance(Model.class);
+ Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+ InputStream aaiModelStream = new ByteArrayInputStream(aaiModel.getBytes());
+ return (Model) unmarshaller.unmarshal(aaiModelStream);
+ } catch (JAXBException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * Get the tosca java model from the tosca input artifact
+ *
+ * @param input Input tosca file and its metadata information as {@link Artifact} object
+ * @return Translated {@link ToscaTemplate tosca} object
+ */
+ private ToscaTemplate getToscaModel(Artifact input) throws SecurityException {
+ byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
+ String checksum = GeneratorUtil.checkSum(decodedInput);
+ if (checksum.equals(input.getChecksum())) {
+ try {
+ return GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new IllegalArgumentException(
+ String.format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()));
+ }
+ } else {
+ throw new SecurityException(
+ String.format(GeneratorConstants.GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH, input.getName()));
+ }
+ }
+
+ /**
+ * Identify the service tosca artifact from the list of translated tosca inputs
+ *
+ * @param input List of translated {@link ToscaTemplate tosca} object models
+ * @return Identified service {@link ToscaTemplate tosca}
+ */
+ private ToscaTemplate getServiceTosca(List<ToscaTemplate> input) {
+ Iterator<ToscaTemplate> iter = input.iterator();
+ while (iter.hasNext()) {
+ ToscaTemplate tosca = iter.next();
+ if (tosca.isService()) {
+ iter.remove();
+ return tosca;
+ }
+ }
+ return null;
+ }
+
+
+ private ToscaTemplate getResourceTosca(List<ToscaTemplate> input) {
+ Iterator<ToscaTemplate> iter = input.iterator();
+ while (iter.hasNext()) {
+ ToscaTemplate tosca = iter.next();
+ if (!tosca.isService()) {
+ iter.remove();
+ return tosca;
+ }
+ }
+ return null;
+ }
+
+
+ private Map<String, String> getVFModuleMetadataTosca(ToscaTemplate toscaTemplate,
+ String vfModuleModelUUID) {
+ Map<String, GroupDefinition> groupDefinitionMap =
+ toscaTemplate.getTopology_template().getGroups();
+ Map<String, String> vfModuleModelMetadata = new LinkedHashMap<>();
+ for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+ if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+ String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+ if (uuid == vfModuleModelUUID) {
+ vfModuleModelMetadata = e.getValue().getMetadata();
+ vfModuleModelMetadata.put("vf_module_description",
+ (String) e.getValue().getProperties().get("vf_module_description"));
+ }
+ }
+ }
+ return vfModuleModelMetadata;
+ }
+
+ private Map<String, Object> getVFModuleMembersTosca(ToscaTemplate toscaTemplate,
+ String vfModuleModelUUID) {
+ Map<String, GroupDefinition> groupDefinitionMap =
+ toscaTemplate.getTopology_template().getGroups();
+ Map<String, NodeTemplate> nodeTemplateMaps =
+ toscaTemplate.getTopology_template().getNode_templates();
+ Map<String, Object> vfModuleMembers = new LinkedHashMap<>();
+ List<String> vfModuleModelMetadata = new ArrayList<>();
+ for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+ if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+ String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+ if (uuid == vfModuleModelUUID) {
+ vfModuleModelMetadata = e.getValue().getMembers();
+ if (vfModuleModelMetadata !=null) {
+ Iterator itr = vfModuleModelMetadata.iterator();
+ while (itr.hasNext()) {
+ Object obj = itr.next();
+ NodeTemplate nodeTemplate = nodeTemplateMaps.get(obj);
+ String nodetype = null;
+ if (nodeTemplate != null) {
+ nodetype = nodeTemplate.getType();
+ }
+ if (nodetype != null) {
+ String widgetType = membersType(nodetype);
+ if (widgetType != null) {
+ vfModuleMembers.put(widgetType, obj);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return vfModuleMembers;
+ }
+
+
+ private String membersType(String toscaType) {
+ String modelToBeReturned = null;
+ while (toscaType != null && toscaType.lastIndexOf(".") != -1 && modelToBeReturned == null) {
+
+ switch (toscaType) {
+ case "org.openecomp.resource.vf.allottedResource":
+ modelToBeReturned = "allotted-resource";
+ break;
+ case "org.openecomp.resource.vfc":
+ modelToBeReturned = "vserver";
+ break;
+ case "org.openecomp.resource.cp":
+ case "org.openecomp.cp":
+ modelToBeReturned = "l-interface";
+ break;
+ case "org.openecomp.resource.vl":
+ modelToBeReturned = "l3-network";
+ break;
+ case "org.openecomp.resource.vf":
+ modelToBeReturned = "generic-vnf";
+ break;
+ case "org.openecomp.groups.VfModule":
+ modelToBeReturned = "vf-module";
+ break;
+ case "org.openecomp.resource.vfc.nodes.heat.cinder":
+ modelToBeReturned = "volume";
+ break;
+ default:
+ modelToBeReturned = null;
+ break;
+ }
+
+ toscaType = toscaType.substring(0, toscaType.lastIndexOf("."));
+ }
+ return modelToBeReturned;
+ }
+
+ private List<Artifact> init(String aaiResourceBasePaths) {
+ List<Artifact> inputArtifacts1 = new ArrayList<>();
+ try {
+
+ String[] resourceFileList = {};
+ URL resourceDirUrl = this.getClass().getClassLoader().getResource(aaiResourceBasePaths);
+ if (resourceDirUrl != null && resourceDirUrl.getProtocol().equals("file")) {
+ resourceFileList = new File(resourceDirUrl.toURI()).list();
+ } else {
+ Assert.fail("Invalid resource directory");
+ }
+
+ for (int i = 0; i < resourceFileList.length; i++) {
+ byte[] payload = null;
+ File resourceFile = new File(
+ this.getClass().getClassLoader().getResource(aaiResourceBasePaths + resourceFileList[i])
+ .getPath());
+ FileInputStream fileInputStream;
+ //convert service tosca file into array of bytes
+ payload = new byte[(int) resourceFile.length()];
+ fileInputStream = new FileInputStream(resourceFile);
+ fileInputStream.read(payload);
+ fileInputStream.close();
+ String checksum = GeneratorUtil.checkSum(payload);
+ byte[] encodedPayload = GeneratorUtil.encode(payload);
+ Artifact artifact =
+ new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
+ artifact.setName(resourceFileList[i]);
+ artifact.setLabel(resourceFileList[i]);
+ artifact.setDescription(resourceFileList[i]);
+ artifact.setVersion("1.0");
+ inputArtifacts1.add(artifact);
+
+ }
+ } catch (Exception e) {
+ //e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+ return inputArtifacts1;
+ }
+
+ private void loadConfigFromClasspath(Properties properties) throws IOException {
+ String configLocation = System.getProperty("artifactgenerator.config");
+ if (configLocation != null) {
+ File file = new File(configLocation);
+ if (file.exists()) {
+ properties.load(new FileInputStream(file));
+ }
+ }
+ }
+
+ public void testResourceTosca(Iterator<ToscaTemplate> itr, Map<String, Model>
+ outputArtifactMap) {
+ while(itr.hasNext()){
+ ToscaTemplate toscaTemplate = itr.next();
+ String resourceVersion=resourcesVersion.get(toscaTemplate.getMetadata().get("UUID"));
+ toscaTemplate.getMetadata().put("version", resourceVersion);
+ if("VF".equals(toscaTemplate.getMetadata().get("type")) && !("Allotted Resource".equals
+ (toscaTemplate.getMetadata().get("category"))) ){
+ testVfTosca(outputArtifactMap, toscaTemplate);
+ } else if("VF".equals(toscaTemplate.getMetadata().get("type")) && ("Allotted Resource".equals
+ (toscaTemplate.getMetadata().get("category"))) ){
+ testAllottedResourceTosca(outputArtifactMap, toscaTemplate);
+ } else if("VL".equals(toscaTemplate.getMetadata().get("type"))){
+ testL3NetworkResourceTosca(outputArtifactMap, toscaTemplate);
+ }
+ }
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/service_vmme_template_1.yml
new file mode 100644
index 0000000000..c740f67b51
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 3.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/vf_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/vf_vmme_template_1.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-AllottedResource-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-AllottedResource-template.yml
new file mode 100644
index 0000000000..c80e701913
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-AllottedResource-template.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-Extvl-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-Extvl-template.yml
new file mode 100644
index 0000000000..512d62bdaa
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/resource-Extvl-template.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ name: ExtVL
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: OPENECOMP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+node_types:
+ org.openecomp.resource.vl.extVL:
+ derived_from: tosca.nodes.Root
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ properties:
+ physical_network:
+ type: org.openecomp.datatypes.network.PhysicalNetwork
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ vl_artifacts:
+ type: map
+ description: List of artifacts associated with the VL
+ entry_schema:
+ type: org.openecomp.datatypes.Artifact
+ network_scope:
+ type: string
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/service-ServiceWithAllotedVfAndExvl-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/service-ServiceWithAllotedVfAndExvl-template.yml
new file mode 100644
index 0000000000..dbd039669c
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai2/service-ServiceWithAllotedVfAndExvl-template.yml
@@ -0,0 +1,90 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: e8a6c85c-429f-47cd-b594-376a0ffccd29
+ UUID: 14fd2446-691a-4d7d-8ef4-ece19c3176f5
+ name: Service with alloted VF and exVL
+ description: 'This service contains two instances : 1. Allotted resource VF 2. ExVL
+ - Network'
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- ExtVL:
+ file: resource-Extvl-template.yml
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ ExtVL 1:
+ type: org.openecomp.resource.vl.extVL
+ metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ version: '2.0'
+ name: ExtVL
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ Allotted Resource 2:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ version: '0.1'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllotedVfAndExvl
+ capabilities:
+ ExtVL 1.virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Allotted Resource 2.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ ExtVL 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ ExtVL 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 2.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 2.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-IpMuxDemux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-IpMuxDemux-template.yml
new file mode 100644
index 0000000000..4549306475
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-IpMuxDemux-template.yml
@@ -0,0 +1,80 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.IpMuxDemux
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-ServiceAdmin-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-ServiceAdmin-template.yml
new file mode 100644
index 0000000000..549c18b55b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-ServiceAdmin-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Service admin
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ providing_service_name: HNPortalaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.ServiceAdmin
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-TunnelXconn-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-TunnelXconn-template.yml
new file mode 100644
index 0000000000..cf97321035
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-TunnelXconn-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ min_instances:
+ type: string
+ max_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.TunnelXconn
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-VhnfNonHeat-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-VhnfNonHeat-template.yml
new file mode 100644
index 0000000000..8ec1c192ee
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/resource-VhnfNonHeat-template.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+topology_template:
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/service-SdWan-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/service-SdWan-template.yml
new file mode 100644
index 0000000000..bc3ab6dabb
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/aai3/service-SdWan-template.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+ UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+ name: SD-WAN
+ description: SD-WAN
+ type: Service
+ category: Network L4+
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- service_admin:
+ file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+ file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+ file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+ file: resource-IpMuxDemux-template.yml
+topology_template:
+ node_templates:
+ Sec_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ Pri_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ Pri_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ Pri_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ Sec_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ vHNF non Heat 22:
+ type: org.openecomp.resource.vf.VhnfNonHeat
+ metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+ version: '0.1'
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ Sec_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ substitution_mappings:
+ node_type: org.openecomp.service.SdWan
+ capabilities:
+ Sec_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Pri_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/config/Artifact-Generator.properties b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/config/Artifact-Generator.properties
new file mode 100644
index 0000000000..1d7e5fa01a
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/config/Artifact-Generator.properties
@@ -0,0 +1,264 @@
+#action widget details
+AAI.model-version-id.action=fd7fb09e-d930-41b9-b83f-cfde9df48640
+AAI.model-invariant-id.action=af593b4b-490e-4665-ad74-2f6351c0a7ce
+#action-data widget details
+AAI.model-invariant-id.action-data=9551346c-7d8b-4daf-9926-b93e96e2344a
+AAI.model-version-id.action-data=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd
+#allotted-resource widget details
+AAI.model-invariant-id.allotted-resource=f6d6a23d-a1a9-48ff-8419-b6530da2d381
+AAI.model-version-id.allotted-resource=7ad0915f-25c0-4a70-b9bc-185a75f87564
+#availability-zone widget details
+AAI.model-version-id.availability-zone=6c092fb1-21b2-456b-9e01-67fb4de1896e
+AAI.model-invariant-id.availability-zone=61b88c01-d819-41c0-8e21-7fd7ba47148e
+#az-and-dvs-switches widget details
+AAI.model-version-id.az-and-dvs-switches=b2dea88d-78a0-49bf-95c9-5819df08e966
+AAI.model-invariant-id.az-and-dvs-switches=53dc00d4-e6d9-48ec-b6cc-3d3797e9b896
+#class-of-service widget details
+AAI.model-version-id.class-of-service=d2fb27cc-15eb-4c4e-828e-71d41aaecc5b
+AAI.model-invariant-id.class-of-service=18094b19-d16d-4822-8acf-e92c6aefa178
+#cloud-region widget details
+AAI.model-version-id.cloud-region=2a160989-b202-47dd-874b-4a0f275998f7
+AAI.model-invariant-id.cloud-region=425b2158-e51d-4509-9945-dad4556474a3
+#complex widget details
+AAI.model-invariant-id.complex=af91c2f7-35fc-43cf-a13d-443f385b2353
+AAI.model-version-id.complex=3a8ab1ee-9220-4fe8-b89c-9251d160ddc2
+#connector widget details
+AAI.model-version-id.connector=22104c9f-29fd-462f-be07-96cd6b46dd33
+AAI.model-invariant-id.connector=4c01c948-7607-4d66-8a6c-99c2c2717936
+#constrained-element-set widget details
+AAI.model-invariant-id.constrained-element-set=c0292b4f-ee97-40cc-8c2e-f967c48f5701
+AAI.model-version-id.constrained-element-set=01102126-9c04-4a89-945b-b131e61e95d7
+#ctag-assignment widget details
+AAI.model-version-id.ctag-assignment=44e5cb1f-0938-41aa-b766-d4595109fe89
+AAI.model-invariant-id.ctag-assignment=fcb8d46b-b656-4ad6-8fa4-22cef74b443f
+#ctag-pool widget details
+AAI.model-invariant-id.ctag-pool=46c51d4e-d67e-4a9c-b1f5-49b1e9c6fcaa
+AAI.model-version-id.ctag-pool=2056c41f-23b9-4de7-9f50-819adad37d76
+#customer widget details
+AAI.model-invariant-id.customer=c1d4305f-cdbd-4bbe-9069-a2f4978fd89e
+AAI.model-version-id.customer=d4df5c27-98a1-4812-a8aa-c17f055b7a3f
+#cvlan-tag-entry widget details
+AAI.model-version-id.cvlan-tag-entry=c3878ffb-8d85-4114-bee6-e4074a9db10b
+AAI.model-invariant-id.cvlan-tag-entry=245cf4b0-7cc5-4eea-bbd9-753e939adcab
+#dvs-switch widget details
+AAI.model-invariant-id.dvs-switch=98fbb471-1f86-428e-bd8a-c8a25de6fa23
+AAI.model-version-id.dvs-switch=4cb44ae8-e3ab-452a-9f95-bcc8a44c55ea
+#edge-prop-names widget details
+AAI.model-invariant-id.edge-prop-names=7a08cad4-8759-46a5-8245-095d1ba57ac6
+AAI.model-version-id.edge-prop-names=f0442326-8201-4d0e-857c-74b4ddcbfc9f
+#element-choice-set widget details
+AAI.model-invariant-id.element-choice-set=9a011958-7165-47a3-b872-00951d1f09ae
+AAI.model-version-id.element-choice-set=af27fbfd-598d-44da-aeae-0f9d3a5fcd6a
+#entitlement widget details
+AAI.model-version-id.entitlement=7e27ba2e-b7db-4e13-9fae-d142152ef98a
+AAI.model-invariant-id.entitlement=ae75b5a0-d5e1-4f3a-b8fb-37626a753da3
+#flavor widget details
+AAI.model-invariant-id.flavor=bace8d1c-a261-4041-9e37-823117415d0f
+AAI.model-version-id.flavor=36200fb5-f251-4f5d-a520-7c5ad5c2cd4b
+#generic-vnf widget details
+AAI.model-version-id.generic-vnf=93a6166f-b3d5-4f06-b4ba-aed48d009ad9
+AAI.model-invariant-id.generic-vnf=acc6edd8-a8d4-4b93-afaa-0994068be14c
+#group-assignment widget details
+AAI.model-invariant-id.group-assignment=7cc05f25-7ba2-42b7-a237-c5662a1689e1
+AAI.model-version-id.group-assignment=fe578080-ce19-4604-8760-fc264fbb2565
+#image widget details
+AAI.model-version-id.image=f6a038c2-820c-42ba-8c2b-375e24e8f932
+AAI.model-invariant-id.image=3f4c7204-739b-4bbb-87a7-8a6856439c90
+#include-node-filter widget details
+AAI.model-invariant-id.include-node-filter=2a2d8ad2-af0a-4e1f-9982-0c899e7dc827
+AAI.model-version-id.include-node-filter=f05f804d-7057-4ffe-bdc5-39f2f0c9c9fd
+#instance-group widget details
+AAI.model-version-id.instance-group=8e6ee9dc-9017-444a-83b3-219edb018128
+AAI.model-invariant-id.instance-group=3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd
+#inventory-item widget details
+AAI.model-invariant-id.inventory-item=cd57d844-9017-4078-aa19-926935a3d77c
+AAI.model-version-id.inventory-item=69957f4a-2155-4b95-8d72-d6dd9b88b27b
+#inventory-item-data widget details
+AAI.model-version-id.inventory-item-data=0e54bb87-bd6e-4a2b-ad1c-6d935b87ae51
+AAI.model-invariant-id.inventory-item-data=87a383ae-cf03-432e-a9de-04e6a622d0fd
+#ipsec-configuration widget details
+AAI.model-invariant-id.ipsec-configuration=aca4c310-cb45-42bd-9f88-73e40ba7b962
+AAI.model-version-id.ipsec-configuration=d949fd10-36bf-408a-ac7a-cad5004d2e0d
+#key-data widget details
+AAI.model-version-id.key-data=c23ea04d-1a3b-453d-bc49-a6c783a5e92b
+AAI.model-invariant-id.key-data=f5faa464-c2f2-4cc3-89d2-a90452dc3a07
+#l3-interface-ipv4-address-list widget details
+AAI.model-version-id.l3-interface-ipv4-address-list=41e76b6f-1e06-4fd4-82cd-81c50fc4574b
+AAI.model-invariant-id.l3-interface-ipv4-address-list=aad85df2-09be-40fa-b867-16415e4e10e2
+#l3-interface-ipv6-address-list widget details
+AAI.model-invariant-id.l3-interface-ipv6-address-list=82966045-43ee-4982-8307-7e9610866140
+AAI.model-version-id.l3-interface-ipv6-address-list=d040621d-541a-477b-bb1b-a2b61b14e295
+#l3-network widget details
+AAI.model-version-id.l3-network=9111f20f-e680-4001-b83f-19a2fc23bfc1
+AAI.model-invariant-id.l3-network=3d560d81-57d0-438b-a2a1-5334dba0651a
+#lag-interface widget details
+AAI.model-version-id.lag-interface=ce95f7c3-b61b-4758-ae9e-7e943b1c103d
+AAI.model-invariant-id.lag-interface=e0ee9bde-c1fc-4651-a95d-8e0597bf7d70
+#lag-link widget details
+AAI.model-version-id.lag-link=d29a087a-af59-4053-a3f8-0f95a92faa75
+AAI.model-invariant-id.lag-link=86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98
+#license widget details
+AAI.model-invariant-id.license=b9a9b337-1f86-42d3-b9f9-f987a089507c
+AAI.model-version-id.license=6889274b-a1dc-40ab-9090-93677e13e2e6
+#license-key-resource widget details
+AAI.model-invariant-id.license-key-resource=9022ebfe-b54f-4911-a6b2-8c3f5ec189b7
+AAI.model-version-id.license-key-resource=24b25f8c-b8bd-4c62-9421-87c12667aac9
+#l-interface widget details
+AAI.model-version-id.l-interface=a32613fd-18b9-459e-aab8-fffb3912966a
+AAI.model-invariant-id.l-interface=cea0a982-8d55-4093-921e-418fbccf7060
+#logical-link widget details
+AAI.model-version-id.logical-link=a1481a38-f8ba-4ae4-bdf1-06c2c6af4c54
+AAI.model-invariant-id.logical-link=fe012535-2c31-4a39-a739-612374c638a0
+#metadatum widget details
+AAI.model-invariant-id.metadatum=86dbb63a-265e-4614-993f-6771c30b56a5
+AAI.model-version-id.metadatum=6bae950e-8939-41d3-a6a7-251b03e4c1fc
+#model widget details
+AAI.model-invariant-id.model=06d1418a-5faa-452d-a94b-a2829df5f67b
+AAI.model-version-id.model=1f51c05c-b164-4c27-9c03-5cbb239fd6be
+#model-constraint widget details
+AAI.model-invariant-id.model-constraint=c28966f3-e758-4483-b37b-a90b05d3dd33
+AAI.model-version-id.model-constraint=ad70dd19-f156-4fb5-a865-97b5563b0d37
+#model-element widget details
+AAI.model-invariant-id.model-element=2076e726-3577-477a-a300-7fa65cd4df11
+AAI.model-version-id.model-element=753e813a-ba9e-4a1d-ab34-b2f6dc6eec0c
+#multicast-configuration widget details
+AAI.model-invariant-id.multicast-configuration=ea78c9e3-514d-4a0a-9162-13837fa54c35
+AAI.model-version-id.multicast-configuration=666a06ee-4b57-46df-bacf-908da8f10c3f
+#named-query widget details
+AAI.model-version-id.named-query=5c3b7c33-afa3-4be5-8da7-1a5ac6f99896
+AAI.model-invariant-id.named-query=80b712fd-0ad3-4180-a99c-8c995cf1cc32
+#named-query-element widget details
+AAI.model-version-id.named-query-element=204c641a-3494-48c8-979a-86856f5fd32a
+AAI.model-invariant-id.named-query-element=3c504d40-b847-424c-9d25-4fb7e0a3e994
+#network-policy widget details
+AAI.model-invariant-id.network-policy=6aa05779-94d7-4d8b-9bee-59ef2ab0c246
+AAI.model-version-id.network-policy=a0ccd9dc-7062-4940-9bcc-e91dd28af510
+#network-profile widget details
+AAI.model-version-id.network-profile=01f45471-4240-498c-a9e1-235dc0b8b4a6
+AAI.model-invariant-id.network-profile=2734b44a-b8a2-40f6-957d-6256589e5d00
+#newvce widget details
+AAI.model-version-id.newvce=7c79e11f-a408-4593-aa86-ba948a1236af
+AAI.model-invariant-id.newvce=4b05ec9c-c55d-4987-83ff-e08d6ddb694f
+#oam-network widget details
+AAI.model-invariant-id.oam-network=2851cf01-9c40-4064-87d4-6184a6fcff35
+AAI.model-version-id.oam-network=f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79
+#physical-link widget details
+AAI.model-invariant-id.physical-link=c822d81f-822f-4304-9623-1025b53da568
+AAI.model-version-id.physical-link=9c523936-95b4-4d7f-9f53-6bdfe0cf2c05
+#p-interface widget details
+AAI.model-invariant-id.p-interface=94043c37-4e73-439c-a790-0fdd697924cd
+AAI.model-version-id.p-interface=d2cdb2d0-fc1f-4a57-a89e-591b1c4e3754
+#pnf widget details
+AAI.model-version-id.pnf=e9f1fa7d-c839-418a-9601-03dc0d2ad687
+AAI.model-invariant-id.pnf=862b25a1-262a-4961-bdaa-cdc55d69785a
+#port-group widget details
+AAI.model-version-id.port-group=03e8bb6b-b48a-46ae-b5d4-e5af577e6844
+AAI.model-invariant-id.port-group=8ce940fb-55d7-4230-9e7f-a56cc2741f77
+#property-constraint widget details
+AAI.model-version-id.property-constraint=81706bbd-981e-4362-ae20-995cbcb2d995
+AAI.model-invariant-id.property-constraint=f4a863c3-6886-470a-a6ae-05723837ea45
+#pserver widget details
+AAI.model-invariant-id.pserver=6d932c8f-463b-4e76-83fb-87acfbaa2e2d
+AAI.model-version-id.pserver=72f0d495-bc27-4653-9e1a-eef76bd34bc9
+#related-lookup widget details
+AAI.model-invariant-id.related-lookup=468f6f5b-2996-41bb-b2a3-7cf9613ebb9b
+AAI.model-version-id.related-lookup=0988bab5-bf4f-4938-a419-ab249867d12a
+#reserved-prop-names widget details
+AAI.model-invariant-id.reserved-prop-names=0c3e0ba3-618c-498d-9127-c8d42b00170f
+AAI.model-version-id.reserved-prop-names=ac49d26d-9163-430e-934a-13b738a04f5c
+#result-data widget details
+AAI.model-version-id.result-data=4e9b50aa-5227-4f6f-b489-62e6bbc03c79
+AAI.model-invariant-id.result-data=ff656f23-6185-406f-9006-4b26834f3e1c
+#route-table-reference widget details
+AAI.model-version-id.route-table-reference=fed7e326-03a7-45ff-a3f2-471470d268c4
+AAI.model-invariant-id.route-table-reference=a8614b63-2636-4c4f-98df-fd448c4241db
+#routing-instance widget details
+AAI.model-invariant-id.routing-instance=1c2ded4f-8b01-4193-829c-966847dfec3e
+AAI.model-version-id.routing-instance=3ccbcbc7-d19e-44d5-a52f-7e18aa8d69fa
+#secondary-filter widget details
+AAI.model-version-id.secondary-filter=1380619d-dd1a-4cec-b755-c6407833e065
+AAI.model-invariant-id.secondary-filter=738ff299-6290-4c00-8998-bd0e96a07b93
+#segmentation-assignment widget details
+AAI.model-invariant-id.segmentation-assignment=6e814aee-46e1-4583-a9d4-0049bfd2b59b
+AAI.model-version-id.segmentation-assignment=c5171ae0-44fb-4c04-b482-d56702241a44
+#service widget details
+AAI.model-version-id.service=ecce2c42-3957-4ae0-9442-54bc6afe27b6
+AAI.model-invariant-id.service=07a3a60b-1b6c-4367-8173-8014386f89e3
+#service-capability widget details
+AAI.model-invariant-id.service-capability=b1a7cc05-d19d-443b-a5d1-733e325c4232
+AAI.model-version-id.service-capability=f9cfec1b-18da-4bba-bd83-4b26cca115cd
+#service-instance widget details
+AAI.model-invariant-id.service-instance=82194af1-3c2c-485a-8f44-420e22a9eaa4
+AAI.model-version-id.service-instance=46b92144-923a-4d20-b85a-3cbd847668a9
+#service-subscription widget details
+AAI.model-invariant-id.service-subscription=2e1a602a-acd8-4f78-94ff-618b802a303b
+AAI.model-version-id.service-subscription=5e68299a-79f2-4bfb-8fbc-2bae877a2459
+#site-pair widget details
+AAI.model-version-id.site-pair=7106bc02-6552-4fc3-8a56-4f3df9034531
+AAI.model-invariant-id.site-pair=db63f3e6-f8d1-484e-8d5e-191600b7914b
+#site-pair-set widget details
+AAI.model-invariant-id.site-pair-set=5d4dae3e-b402-4bfd-909e-ece12ff75d26
+AAI.model-version-id.site-pair-set=a5c6c1bc-dc38-468e-9459-bb08f87247df
+#snapshot widget details
+AAI.model-version-id.snapshot=962a7c8b-687f-4d32-a775-fe098e214bcd
+AAI.model-invariant-id.snapshot=24de00ef-aead-4b52-995b-0adf8d4bd90d
+#sriov-vf widget details
+AAI.model-version-id.sriov-vf=1e8b331f-3d4a-4160-b7aa-f4d5a8916625
+AAI.model-invariant-id.sriov-vf=04b2935f-33c4-40a9-8af0-8b52690042dc
+#start-node-filter widget details
+AAI.model-version-id.start-node-filter=aad96fd3-e75f-42fc-9777-3450c36f1168
+AAI.model-invariant-id.start-node-filter=083093a3-e407-447a-ba5d-7583e4d23e1d
+#subnet widget details
+AAI.model-version-id.subnet=f902a6bc-6be4-4fe5-8458-a6ec0056b374
+AAI.model-invariant-id.subnet=1b2c9ba7-e449-4831-ba15-3073672f5ef2
+#tagged-inventory-item-list widget details
+AAI.model-invariant-id.tagged-inventory-item-list=e78a7eaa-f65d-4919-9c2b-5b258c8c4d7e
+AAI.model-version-id.tagged-inventory-item-list=c246f6e2-e3a1-4697-94c0-5672a7fbbf04
+#tenant widget details
+AAI.model-invariant-id.tenant=97c26c99-6870-44c1-8a07-1d900d3f4ce6
+AAI.model-version-id.tenant=abcc54bc-bb74-49dc-9043-7f7171707545
+#tunnel-xconnect widget details
+AAI.model-invariant-id.tunnel-xconnect=50b9e2fa-005c-4bbe-b651-3251dece4cd8
+AAI.model-version-id.tunnel-xconnect=e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5
+#update-node-key widget details
+AAI.model-version-id.update-node-key=6004cfa6-eb6d-4062-971f-b1fde6b74aa0
+AAI.model-invariant-id.update-node-key=fe81c801-f65d-408a-b2b7-a729a18f8154
+#vce widget details
+AAI.model-version-id.vce=b6cf54b5-ec45-43e1-be64-97b4e1513333
+AAI.model-invariant-id.vce=bab6dceb-e7e6-4301-a5e0-a7399b48d792
+#vf-module widget details
+AAI.model-invariant-id.vf-module=ef86f9c5-2165-44f3-8fc3-96018b609ea5
+AAI.model-version-id.vf-module=c00563ae-812b-4e62-8330-7c4d0f47088a
+#vig-server widget details
+AAI.model-version-id.vig-server=8e8c22f1-fbdf-48ea-844c-8bdeb44e7b16
+AAI.model-invariant-id.vig-server=bed7c3b7-35d0-4cd9-abde-41b20e68b28e
+#virtual-data-center widget details
+AAI.model-invariant-id.virtual-data-center=5150abcf-0c5f-4593-9afe-a19c48fc4824
+AAI.model-version-id.virtual-data-center=6dd43ced-d789-47af-a759-d3abc14e3ac1
+#vlan widget details
+AAI.model-version-id.vlan=257d88a5-a269-4c35-944f-aca04fbdb791
+AAI.model-invariant-id.vlan=d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8
+#vnfc widget details
+AAI.model-invariant-id.vnfc=96129eb9-f0de-4e05-8af2-73146473f766
+AAI.model-version-id.vnfc=5761e0a7-c6df-4d8a-9ebd-b8f445054dec
+#vnf-image widget details
+AAI.model-invariant-id.vnf-image=f9a628ff-7aa0-40e2-a93d-02d91c950982
+AAI.model-version-id.vnf-image=c4d3e747-ba4a-4b17-9896-94c6f18c19d3
+#volume widget details
+AAI.model-version-id.volume=0fbe2e8f-4d91-4415-a772-88387049b38d
+AAI.model-invariant-id.volume=ddd739b4-2b25-46c4-affc-41a32af5cc42
+#volume-group widget details
+AAI.model-invariant-id.volume-group=fcec1b02-b2d0-4834-aef8-d71be04717dd
+AAI.model-version-id.volume-group=99d44c90-1f61-4418-b9a6-56586bf38c79
+#vpe widget details
+AAI.model-invariant-id.vpe=053ec3a7-5b72-492d-b54d-123805a9b967
+AAI.model-version-id.vpe=203817d3-829c-42d4-942d-2a935478e993
+#vpls-pe widget details
+AAI.model-version-id.vpls-pe=b1566228-6785-4ce1-aea2-053736f80341
+AAI.model-invariant-id.vpls-pe=457ba89b-334c-4fbd-acc4-160ac0e0cdc0
+#vpn-binding widget details
+AAI.model-invariant-id.vpn-binding=9e23b675-db2b-488b-b459-57aa9857baa0
+AAI.model-version-id.vpn-binding=21a146e5-9901-448c-9197-723076770119
+#vserver widget details
+AAI.model-invariant-id.vserver=ff69d4e0-a8e8-4108-bdb0-dd63217e63c7
+AAI.model-version-id.vserver=8ecb2c5d-7176-4317-a255-26274edfdd53 \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/logback.xml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/logback.xml
new file mode 100644
index 0000000000..68438967b1
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/logback.xml
@@ -0,0 +1,51 @@
+<configuration scan="true" scanPeriod="3 seconds">
+
+ <property name="logDir" value="logs"/>
+ <property name="componentName" value="COMMON"/>
+ <property name="OPENECOMP-subcomponent-name" value="ARTIFACT_GENERATOR"/>
+
+ <property name="defaultPattern"
+ value="%msg%n"/>
+
+ <!--<property name="MetricsLogPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%X{CategoryLogLevel}|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIP}|%logger%n" />
+ <property name="AuditLogPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%X{CategoryLogLevel}|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIP}%n" />
+ <property name="ErrorLogPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS, GMT}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDescription}|%msg%n"/>
+ <property name="DebugLogPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS, GMT}|%X{RequestId}||%logger|%msg%n"/>-->
+
+ <!-- new pattern -->
+ <property name="default-log-pattern"
+ value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${OPENECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDescription}|%X{level}|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|%X{beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n"/>
+
+ <property name="logDirectory" value="${logDir}/${componentName}"/>
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="DISPATCHER" class="ch.qos.logback.classic.sift.SiftingAppender">
+ <discriminator class="org.openecomp.core.logging.logback.EventTypeDiscriminator"/>
+ <sift>
+ <appender name="${eventType}" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${eventType}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${eventType}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${default-log-pattern}</pattern>
+ </encoder>
+ </appender>
+ </sift>
+ </appender>
+
+ <root level="DEBUG">
+ <appender-ref ref="DISPATCHER"/>
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingResourceTosca/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingResourceTosca/service_vmme_template_1.yml
new file mode 100644
index 0000000000..822484eda4
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingResourceTosca/service_vmme_template_1.yml
@@ -0,0 +1,99 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/resource-AllottedResource-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/resource-AllottedResource-template.yml
new file mode 100644
index 0000000000..8c85966229
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/resource-AllottedResource-template.yml
@@ -0,0 +1,60 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource1
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/service-ServiceWithAllotedVfAndExvl-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/service-ServiceWithAllotedVfAndExvl-template.yml
new file mode 100644
index 0000000000..dbd039669c
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/missingVLTosca/service-ServiceWithAllotedVfAndExvl-template.yml
@@ -0,0 +1,90 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: e8a6c85c-429f-47cd-b594-376a0ffccd29
+ UUID: 14fd2446-691a-4d7d-8ef4-ece19c3176f5
+ name: Service with alloted VF and exVL
+ description: 'This service contains two instances : 1. Allotted resource VF 2. ExVL
+ - Network'
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- ExtVL:
+ file: resource-Extvl-template.yml
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ ExtVL 1:
+ type: org.openecomp.resource.vl.extVL
+ metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ version: '2.0'
+ name: ExtVL
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ Allotted Resource 2:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ version: '0.1'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllotedVfAndExvl
+ capabilities:
+ ExtVL 1.virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Allotted Resource 2.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ ExtVL 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ ExtVL 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 2.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 2.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModInvUuIdAttr.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModInvUuIdAttr.yml
new file mode 100644
index 0000000000..f57a7d2300
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModInvUuIdAttr.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModUuIdAttr.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModUuIdAttr.yml
new file mode 100644
index 0000000000..f57a7d2300
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModUuIdAttr.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModInvUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModInvUUID.yml
new file mode 100644
index 0000000000..4d50982f63
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModInvUUID.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelName.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelName.yml
new file mode 100644
index 0000000000..4d50982f63
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelName.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelUUID.yml
new file mode 100644
index 0000000000..4d50982f63
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelUUID.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelVersion.yml
new file mode 100644
index 0000000000..4d50982f63
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelVersion.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/resource-AllottedResource-template_IpMux_WithGroups.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/resource-AllottedResource-template_IpMux_WithGroups.yml
new file mode 100644
index 0000000000..282750351c
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/resource-AllottedResource-template_IpMux_WithGroups.yml
@@ -0,0 +1,283 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
new file mode 100644
index 0000000000..1fba2e727f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration10/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration10/service_vmme_template_1.yml
new file mode 100644
index 0000000000..4a16e555ff
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration10/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name:
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-IpMuxDemux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-IpMuxDemux-template.yml
new file mode 100644
index 0000000000..5b4ffd971e
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-IpMuxDemux-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+ UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+ name: IP_Mux_Demux
+ description: nbvnbb
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: stella
+ resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+ file: resource-Newallotted-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+ UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+ customizationUUID: e7a3e375-9bec-4552-88d2-26cb5dcf580d
+ version: '1.0'
+ name: newAllotted
+ description: vcxvcx
+ type: VFC
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: 2bec5c69-b64e-4ffe-b74a-62f14d255d46
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 8ca1e477-77ec-47ed-a498-303fd0de9080
+ providing_service_name: ServiceAllMichael1801
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.IpMuxDemux
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-TunnelXconn-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-TunnelXconn-template.yml
new file mode 100644
index 0000000000..434757d30e
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-TunnelXconn-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+ UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+ name: Tunnel_XConn
+ description: stella
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ resourceVendor: stella
+ resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+ file: resource-Newallotted-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+ UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+ customizationUUID: a92f5f2e-fe08-4711-84f6-2e64608aca13
+ version: '1.0'
+ name: newAllotted
+ description: vcxvcx
+ type: VFC
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: c964ef13-9d61-4d1b-a1a6-7060f3d7ddb4
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 3d6f84f5-84fd-441a-8fd8-401f71196712
+ providing_service_name: ServiceSprint38stella
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.TunnelXconn
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/service-Allottedipmux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/service-Allottedipmux-template.yml
new file mode 100644
index 0000000000..449e0925d5
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/service-Allottedipmux-template.yml
@@ -0,0 +1,126 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 9c5b8e77-6ae1-4817-994f-a14a03635868
+ UUID: 2722acbc-a8cb-4d73-ab14-9b2d79dc2131
+ name: AllottedIPMux
+ description: cbvbv
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Tunnel_XConn:
+ file: resource-TunnelXconn-template.yml
+- IP_Mux_Demux:
+ file: resource-IpMuxDemux-template.yml
+topology_template:
+ node_templates:
+ Tunnel_XConn 3:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+ UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+ customizationUUID: ae051f74-0d64-40f8-877b-791330cd7801
+ version: '1.0'
+ name: Tunnel_XConn
+ description: stella
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ IP_Mux_Demux 2:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+ UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+ customizationUUID: 8cb6b8f7-a9bc-4745-92bd-f815f68fa6bc
+ version: '1.0'
+ name: IP_Mux_Demux
+ description: nbvnbb
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ IP_Mux_Demux 1:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+ UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+ customizationUUID: 7801f43f-f3f6-453f-89ea-4c182c569ad6
+ version: '1.0'
+ name: IP_Mux_Demux
+ description: nbvnbb
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.Allottedipmux
+ capabilities:
+ IP_Mux_Demux 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Tunnel_XConn 3.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ IP_Mux_Demux 2.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Tunnel_XConn 3.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 2.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 2.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Tunnel_XConn 3.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/resource-AllottedResource-template_IpMux.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/resource-AllottedResource-template_IpMux.yml
new file mode 100644
index 0000000000..84b412d591
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/resource-AllottedResource-template_IpMux.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource123
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource123
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ max_instances: 1
+ min_instances: 1
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/service-ServiceWithAllottedResourceIpmux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/service-ServiceWithAllottedResourceIpmux-template.yml
new file mode 100644
index 0000000000..1fba2e727f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/service-ServiceWithAllottedResourceIpmux-template.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource1SameInvariant-IpMux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource1SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000000..2852d03568
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource1SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource2SameInvariant-IpMux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource2SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000000..0986300436
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource2SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e24a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
new file mode 100644
index 0000000000..efd2dea67a
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ allottedresource2:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.3'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
new file mode 100644
index 0000000000..2852d03568
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
new file mode 100644
index 0000000000..08c5329212
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ allottedresource2:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration2/Resource0-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration2/Resource0-template.yml
new file mode 100644
index 0000000000..49666f9bae
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration2/Resource0-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+ UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+ name: resource_0
+ description: description
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ resourceVendor: vendor name
+ resourceVendorRelease: vendor release
+topology_template:
+ substitution_mapping:
+ node_type: org.openecomp.resource.vf.Resource0
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration4/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration4/service_vmme_template_1.yml
new file mode 100644
index 0000000000..76bb35ceec
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration4/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vasf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vsl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vasl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vasl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration5/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration5/service_vmme_template_1.yml
new file mode 100644
index 0000000000..338f5511bf
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration5/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/Resource0-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/Resource0-template.yml
new file mode 100644
index 0000000000..49666f9bae
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/Resource0-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+ UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+ name: resource_0
+ description: description
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ resourceVendor: vendor name
+ resourceVendorRelease: vendor release
+topology_template:
+ substitution_mapping:
+ node_type: org.openecomp.resource.vf.Resource0
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/service_vmme_template_1.yml
new file mode 100644
index 0000000000..4daeca3972
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vsf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vsdl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vsdl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vsdl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration8/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration8/service_vmme_template_1.yml
new file mode 100644
index 0000000000..ff9e604bf3
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration8/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID:
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration9/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration9/service_vmme_template_1.yml
new file mode 100644
index 0000000000..403ad87be0
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration9/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID:
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-IpMuxDemux-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-IpMuxDemux-template_AllRes_VF.yml
new file mode 100644
index 0000000000..d8885bb84b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-IpMuxDemux-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ providing_service_name: vVIGaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.IpMuxDemux
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-ServiceAdmin-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-ServiceAdmin-template_AllRes_VF.yml
new file mode 100644
index 0000000000..549c18b55b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-ServiceAdmin-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Service admin
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ providing_service_name: HNPortalaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.ServiceAdmin
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-TunnelXconn-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-TunnelXconn-template_AllRes_VF.yml
new file mode 100644
index 0000000000..1eb97a0976
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-TunnelXconn-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ min_instances:
+ type: string
+ max_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ providing_service_name: vVIGaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.TunnelXconn
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-VhnfNonHeat-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-VhnfNonHeat-template_AllRes_VF.yml
new file mode 100644
index 0000000000..8ec1c192ee
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-VhnfNonHeat-template_AllRes_VF.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+topology_template:
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/service-SdWan-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/service-SdWan-template_AllRes_VF.yml
new file mode 100644
index 0000000000..bc3ab6dabb
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/service-SdWan-template_AllRes_VF.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+ UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+ name: SD-WAN
+ description: SD-WAN
+ type: Service
+ category: Network L4+
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- service_admin:
+ file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+ file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+ file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+ file: resource-IpMuxDemux-template.yml
+topology_template:
+ node_templates:
+ Sec_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ Pri_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ Pri_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ Pri_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ Sec_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ vHNF non Heat 22:
+ type: org.openecomp.resource.vf.VhnfNonHeat
+ metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+ version: '0.1'
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ Sec_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ substitution_mappings:
+ node_type: org.openecomp.service.SdWan
+ capabilities:
+ Sec_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Pri_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-IpMuxDemux-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-IpMuxDemux-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..2e06cf467b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-IpMuxDemux-template_WithOutDepSerId.yml
@@ -0,0 +1,80 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid:
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid:
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.IpMuxDemux
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-ServiceAdmin-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-ServiceAdmin-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..c8a641d1ac
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-ServiceAdmin-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid:
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid:
+ providing_service_name: HNPortalaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.ServiceAdmin
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-TunnelXconn-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-TunnelXconn-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..eb248d1d65
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-TunnelXconn-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ min_instances:
+ type: string
+ max_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid:
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid:
+ providing_service_name: vVIGaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.TunnelXconn
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-VhnfNonHeat-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-VhnfNonHeat-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..8ec1c192ee
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-VhnfNonHeat-template_WithOutDepSerId.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+topology_template:
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/service-SdWan-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/service-SdWan-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..51d8c2d8ba
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/service-SdWan-template_WithOutDepSerId.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+ UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+ name: SD-WAN
+ description: SD-WAN
+ type: Service
+ category: Network L4+
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- service_admin:
+ file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+ file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+ file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+ file: resource-IpMuxDemux-template.yml
+topology_template:
+ node_templates:
+ Sec_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Pri_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Pri_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Pri_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Sec_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ vHNF non Heat 22:
+ type: org.openecomp.resource.vf.VhnfNonHeat
+ metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+ version: '0.1'
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ Sec_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ substitution_mappings:
+ node_type: org.openecomp.service.SdWan
+ capabilities:
+ Sec_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Pri_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidInvId/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidInvId/service_vmme_template_1.yml
new file mode 100644
index 0000000000..50c4c8230a
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidInvId/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: 7787da18-123
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/service_vmme_template_1.yml
new file mode 100644
index 0000000000..fbb1e62a89
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 0.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/vf_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/vf_vmme_template_1.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/service_vmme_template_1.yml
new file mode 100644
index 0000000000..94b6c9b29b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/vf_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/vf_vmme_template_1.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidUuId/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidUuId/service_vmme_template_1.yml
new file mode 100644
index 0000000000..5edb3bf8af
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidUuId/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ UUID: 7787da18-123
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/service_vmme_template_1.yml
new file mode 100644
index 0000000000..d50b285b70
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version:
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/vf_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/vf_vmme_template_1.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-AllottedResource-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-AllottedResource-template.yml
new file mode 100644
index 0000000000..c80e701913
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-AllottedResource-template.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template.yml
new file mode 100644
index 0000000000..aa32d4ae01
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ name: ExtVL1
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: OPENECOMP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+node_types:
+ org.openecomp.resource.vl.extVL:
+ derived_from: tosca.nodes.Root
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ properties:
+ physical_network:
+ type: org.openecomp.datatypes.network.PhysicalNetwork
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ vl_artifacts:
+ type: map
+ description: List of artifacts associated with the VL
+ entry_schema:
+ type: org.openecomp.datatypes.Artifact
+ network_scope:
+ type: string
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template_1.yml
new file mode 100644
index 0000000000..e474f9a637
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template_1.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+ name: ExtVL2
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: OPENECOMP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+node_types:
+ org.openecomp.resource.vl.extVL:
+ derived_from: tosca.nodes.Root
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ properties:
+ physical_network:
+ type: org.openecomp.datatypes.network.PhysicalNetwork
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ vl_artifacts:
+ type: map
+ description: List of artifacts associated with the VL
+ entry_schema:
+ type: org.openecomp.datatypes.Artifact
+ network_scope:
+ type: string
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/service_vmme_template_1.yml
new file mode 100644
index 0000000000..c2b2875c75
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/service_vmme_template_1.yml
@@ -0,0 +1,139 @@
+---
+description: "Service Template for deploing MME Service"
+imports:
+ -
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+ -
+ ExtVL:
+ file: resource-Extvl-template.yml
+ -
+ ? "Allotted Resource"
+ :
+ file: resource-AllottedResource-template.yml
+metadata:
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ category: Mobility
+ description: vMME_Service
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ name: vMME_Service
+ serviceEcompNaming: false
+ serviceHoming: false
+ type: Service
+topology_template:
+ groups:
+ external_networks:
+ members:
+ - sctp_a_net
+ - sctp_b_net
+ - gtp_net
+ properties:
+ availability_zone_count: 1
+ contrail_service_instance: true
+ type: org.openecomp.groups.externalNetworks
+ inputs:
+ gtp_net_cidr:
+ default: 107.243.37.64/27
+ description: "The GTP network cidr"
+ type: string
+ gtp_net_end_ip:
+ default: "107.243.37.94"
+ description: "The GTP network end ip"
+ type: string
+ gtp_net_gateway_ip:
+ default: "107.243.37.65"
+ description: "The GTP network gateway"
+ type: string
+ gtp_net_network_name:
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_route_targets:
+ default: "13979:105715"
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_start_ip:
+ default: "107.243.37.67"
+ description: "The GTP network start ip"
+ type: string
+ mme_vf_deployment_node:
+ description: "The target LCP node for deployment of this VF instance"
+ type: string
+ mme_vf_instance_name:
+ description: "VF instance name"
+ type: string
+ node_templates:
+ ? "Allotted Resource 2"
+ :
+ metadata:
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ category: "Allotted Resource"
+ description: "This is a VF - Allotted resource"
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ name: "Allotted Resource"
+ subcategory: "Allotted Resource"
+ type: VF
+ version: "1.0"
+ type: org.openecomp.resource.vf.AllottedResource
+ ? "ExtVL 1"
+ :
+ metadata:
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ category: Generic
+ description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ name: ExtVL
+ subcategory: "Network Elements"
+ type: VL
+ version: "2.0"
+ type: org.openecomp.resource.vl.extVL
+ ? "ExtVL 2"
+ :
+ metadata:
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+ category: Generic
+ description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ name: ExtVL
+ subcategory: "Network Elements"
+ type: VL
+ version: "4.0"
+ type: org.openecomp.resource.vl.extVL
+
+ mme:
+ metadata:
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ resourceVendor: Ericsson
+ subcategory: Firewall
+ type: VF
+ version: 1.0
+ properties:
+ vf_deployment_node:
+ get_input: vf_deployment_node
+ vf_ecomp_name: false
+ vf_homing: false
+ vf_instance_name:
+ get_input: vf_instance_name
+ requirements:
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vf.vmme
+
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/vf_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/vf_vmme_template_1.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/ServiceMock-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/ServiceMock-template.yml
new file mode 100644
index 0000000000..84ba6c9298
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/ServiceMock-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: c2749b42-28db-45e0-ab55-b05d0118d91d
+ UUID: b8ff69ca-786d-479e-9f9c-217a90ee0ebc
+ name: service_mock
+ description: aaa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Network:
+ file: NeutronNet-template.yml
+- vadtran_Demo:
+ file: VadtranDemo-template.yml
+- Port:
+ file: ContrailPort-template.yml
+topology_template:
+ node_templates:
+ Port 1:
+ type: org.openecomp.resource.cp.nodes.heat.network.contrail.Port
+ metadata:
+ invariantUUID: fc94daa0-a1a9-405e-a84c-b15987f92357
+ UUID: 4dd2144f-72d4-47de-b361-8ed51c33c4a8
+ resourceCustomizationUUID: 6402d92d-0050-46a9-8202-623a46680ba7
+ version: '1.0'
+ name: ContrailPort
+ description: Represents a logical entity that associates between Compute and Network normative types for contrail.
+ type: CP
+ category: Generic
+ subcategory: Network Elements
+
+ vadtran_Demo 1:
+ type: org.openecomp.resource.vf.VadtranDemo
+ metadata:
+ invariantUUID: 886d689d-351d-485a-829c-d86ec2dde4c4
+ UUID: 3d6e1e60-14ac-4665-83de-6e2c729f0222
+ resourceCustomizationUUID: 8cc0b0f6-d0fd-4742-b054-8d1786e07ff8
+ version: '1.0'
+ name: vadtran_Demo
+ description: test
+ type: VF
+ category: Generic
+ subcategory: Database
+
+ groups:
+ vadtran_Demo..base_adtran_pmaa_heat_04..module-0:
+ type: org.openecomp.groups.VfModule
+ metadata:
+ vfModuleModelName: vadtran_Demo..base_adtran_pmaa_heat_04..module-0
+ vfModuleModelCustomizationUUID: fbf41c77-6b84-4e77-ae26-d86ec2dde4c4
+ vfModuleModelInvariantUUID: d84f61c9-160a-44b6-a008-6caadbb6c612
+ vfModuleModelUUID: fbf41c77-a7ee-4203-ad6c-eeb8a4ad7178
+ vfModuleModelVersion: '1'
+ properties:
+ vf_module_type: Base
+ vf_module_description:
+ volume_group: false
+ vf_module_label:
+ min_vf_module_instances: 2
+ max_vf_module_instances: 2
+ initial_count: 2
+
+
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/VadtranDemo-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/VadtranDemo-template.yml
new file mode 100644
index 0000000000..bddcf9f284
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/VadtranDemo-template.yml
@@ -0,0 +1,170 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 886d689d-351d-485a-829c-d86ec2dde4c4
+ UUID: 3d6e1e60-14ac-4665-83de-6e2c729f0222
+ name: vadtran_Demo
+ description: test
+ type: VF
+ category: Generic
+ subcategory: Database
+ resourceVendor: Test
+ resourceVendorRelease: '1.0'
+imports:
+- NeutronPort:
+ file: Neutronport-template.yml
+- VadtranDemo.nodes.heat.vnf:
+ file: VadtrandemoNodesHeatVnf-template.yml
+topology_template:
+ inputs:
+ pmaa_dpu_net_id:
+ type: string
+ default: bd3be094-ddf0-43b3-91e7-d424f09dd2b9
+ description: PMAA DPU network ID
+ pmaa_dpu_fixed_ip:
+ type: string
+ default: 10.0.2.50
+ description: PMAA fixed IP address for DPU network port
+ pmaa_flavor:
+ type: string
+ default: m1.medium
+ description: PMAA instance Flavor (RAM, DISK, vCPUs)
+ pmaa_image:
+ type: string
+ default: adtran_pmaa_ubuntu_multi
+ description: PMAA image for compute instance
+ pmaa_mgt_net_id:
+ type: string
+ default: 991cdd94-18ca-4bf8-a931-922a64500840
+ description: PMAA management network
+ vnf_id:
+ type: string
+ default: pmaa_vnf_id
+ description: PMAA unique ID
+ pmaa_availability_zone:
+ type: string
+ default: nova
+ description: PMAA availability zone ID to deploy the instance
+ vnf_name:
+ type: string
+ default: pmaa
+ description: PMAA vnf name
+ pmaa_dpu_cidr:
+ type: string
+ default: 10.0.2.0/24
+ description: PMAA DPU subnetwork CIDR address block
+ pmaa_dpu_subnet_id:
+ type: string
+ default: e848430b-e956-4b47-9cc8-f7a6ca2c790a
+ description: PMAA DPU subnetwork ID
+ pmaa_dpu_gateway:
+ type: string
+ default: 10.0.2.254
+ description: PMAA DPU subnetwork gateway IP address
+ node_templates:
+ pmaa_mgt_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ metadata:
+ invariantUUID: cba26d10-4613-4c82-9f9e-af95eaf959a3
+ UUID: 2606755b-d301-45c6-900e-ca676cc9f348
+ resourceCustomizationUUID: 6402d92d-0050-46a9-8202-f7a6ca2c790a
+ version: '1.0'
+ name: NeutronPort
+ description: Represents a logical entity that associates between Compute and Network normative types.
+ type: CP
+ category: Generic
+ subcategory: Network Elements
+ properties:
+ network:
+ get_input: pmaa_mgt_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pmaa_server_0
+ relationship: tosca.relationships.network.BindsTo
+ pmaa_dpu_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ metadata:
+ invariantUUID: cba26d10-4613-4c82-9f9e-af95eaf959a3
+ UUID: 2606755b-d301-45c6-900e-ca676cc9f348
+ resourceCustomizationUUID: 6402d92d-4613-4c82-9f9e-f7a6ca2c790a
+ version: '1.0'
+ name: NeutronPort
+ description: Represents a logical entity that associates between Compute and Network normative types.
+ type: CP
+ category: Generic
+ subcategory: Network Elements
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: pmaa_dpu_fixed_ip
+ network:
+ get_input: pmaa_dpu_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pmaa_server_0
+ relationship: tosca.relationships.network.BindsTo
+ pmaa_server_0:
+ type: org.openecomp.resource.vfc.VadtranDemo.abstact.nodes.heat.vnf
+ metadata:
+ invariantUUID: 660310f4-8851-46d3-9cb7-9f1188b43aa7
+ UUID: 82150098-aead-4ae0-a3e0-d5273b4ab923
+ resourceCustomizationUUID: 6402d92d-8851-46d3-9cb7-f7a6ca2c790a
+ version: '1.0'
+ name: VadtranDemo.nodes.heat.vnf
+ description: Not reusable inner VFC
+ type: VFC
+ category: Generic
+ subcategory: Abstract
+ properties:
+ flavor:
+ get_input: pmaa_flavor
+ image:
+ get_input: pmaa_image
+ availability_zone:
+ get_input: pmaa_availability_zone
+ metadata:
+ pmaa.sb_nic:
+ address:
+ get_input: pmaa_dpu_fixed_ip
+ cidr:
+ get_input: pmaa_dpu_cidr
+ gateway:
+ get_input: pmaa_dpu_gateway
+ user_data_format:
+ name:
+ get_input: vnf_name
+ groups:
+ vadtran_Demo..base_adtran_pmaa_heat_04..module-0:
+ type: org.openecomp.groups.VfModule
+ metadata:
+ vfModuleModelName: vadtran_Demo..base_adtran_pmaa_heat_04..module-0
+ vfModuleModelInvariantUUID: d84f61c9-160a-44b6-a008-6caadbb6c612
+ vfModuleModelUUID: fbf41c77-a7ee-4203-ad6c-eeb8a4ad7178
+ vfModuleModelVersion: '1'
+ properties:
+ vf_module_type: Base
+ vf_module_description:
+ volume_group: false
+ base_adtran_pmaa_heat_04:
+ type: org.openecomp.groups.heat.HeatStack
+ members:
+ - pmaa_mgt_port
+ - pmaa_dpu_port
+ - pmaa_server_0
+ metadata:
+ invariantUUID: d2e21beb-b7e4-44cf-bf6c-f8c8802fe532
+ UUID: c9d6f49a-6785-4693-a921-d980e4d11aa4
+ version: '1'
+ name: base_adtran_pmaa_heat_04
+
+ #_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModInvUuIdAttr.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModInvUuIdAttr.yml
new file mode 100644
index 0000000000..7d3a420a00
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModInvUuIdAttr.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc3333
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModUuIdAttr.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModUuIdAttr.yml
new file mode 100644
index 0000000000..a2d65041b0
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModUuIdAttr.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: adf1a1-
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModInvUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModInvUUID.yml
new file mode 100644
index 0000000000..0961302ead
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModInvUUID.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID:
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelName.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelName.yml
new file mode 100644
index 0000000000..2f5f4267b5
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelName.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName:
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelUUID.yml
new file mode 100644
index 0000000000..7dec66c31b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelUUID.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID:
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelVersion.yml
new file mode 100644
index 0000000000..5ae33ed8ab
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelVersion.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion:
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml
new file mode 100644
index 0000000000..a1ced432be
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml
@@ -0,0 +1,43 @@
+<?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/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>openecomp-common-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-test</artifactId>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>${mvn.shade.version}</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <artifactSet>
+ <excludes>
+ <exclude>com.google.guava:*</exclude>
+ </excludes>
+ </artifactSet>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
+
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/pom.xml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/pom.xml
new file mode 100644
index 0000000000..559a96a4b3
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/pom.xml
@@ -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>
+
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-test</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../</relativePath>
+ </parent>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+ <!-- any other plugins -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>${mvn.shade.version}</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <artifactSet>
+ <excludes>
+ <exclude>com.google.guava:*</exclude>
+ </excludes>
+ </artifactSet>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.8.8</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java
new file mode 100644
index 0000000000..85479e31da
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java
@@ -0,0 +1,728 @@
+/*-
+ * ============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.generator;
+
+import org.openecomp.sdc.generator.aai.model.*;
+import org.openecomp.sdc.generator.aai.model.Service;
+import org.openecomp.sdc.generator.aai.tosca.GroupDefinition;
+import org.openecomp.sdc.generator.aai.tosca.NodeTemplate;
+import org.openecomp.sdc.generator.aai.tosca.ToscaTemplate;
+import org.openecomp.sdc.generator.aai.xml.*;
+import org.openecomp.sdc.generator.aai.xml.Model;
+import org.openecomp.sdc.generator.data.*;
+import org.junit.Assert;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.*;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static org.openecomp.sdc.generator.SampleJUnitTest.additionalParams;
+
+@SuppressWarnings("Duplicates")
+public class ArtifactGenerationServiceTest {
+
+ static Map<String, String> resourcesVersion = new HashMap<>();
+ public static Properties properties = new Properties();
+
+ @SuppressWarnings("Since15")
+ public static void validateName(List<Artifact> artifactList) {
+ for(Artifact artifact : artifactList){
+ String xml = new String(Base64.getDecoder().decode(artifact.getPayload()));
+ Model model = getUnmarshalledArtifactModel(xml);
+ String xmlName = "AAI-"+ model.getModelVers().getModelVer().get(0).getModelName()
+ +"-"+model
+ .getModelType
+ ()+"-"+model.getModelVers().getModelVer().get(0)
+ .getModelVersion()+".xml";
+
+ Assert.assertEquals(true,artifact.getName().equals(xmlName));
+
+ }
+ }
+
+ public static void checkArtifactName(String name){
+ Assert.assertEquals(true,name.length()<=255);
+ }
+
+ public static void checkArtifactLabel(String label){
+ Pattern pattern = Pattern.compile("[a-zA-Z0-9-+\\s]+");
+ Matcher matcher = pattern.matcher(label);
+ Assert.assertEquals(true,matcher.matches());
+ }
+
+ public static void checkArtifactDescription(String description){
+ Pattern pattern = Pattern.compile("[a-zA-Z\\s\\t\\n]+");
+ Matcher matcher = pattern.matcher(description);
+ Assert.assertEquals(true,matcher.matches());
+ Assert.assertEquals(true,description.length()<=256);
+
+ }
+
+ public static void testResourceTosca(Iterator<ToscaTemplate> itr, Map<String, Model>
+ outputArtifactMap) {
+ while(itr.hasNext()){
+ ToscaTemplate toscaTemplate = itr.next();
+ String resourceVersion= resourcesVersion.get(toscaTemplate.getMetadata().get("UUID"));
+ toscaTemplate.getMetadata().put("version", resourceVersion);
+ if("VF".equals(toscaTemplate.getMetadata().get("type")) && !("Allotted Resource".equals
+ (toscaTemplate.getMetadata().get("category"))) ){
+ testVfTosca(outputArtifactMap, toscaTemplate);
+ } else if("VF".equals(toscaTemplate.getMetadata().get("type")) && ("Allotted Resource".equals
+ (toscaTemplate.getMetadata().get("category"))) ){
+ testAllottedResourceTosca(outputArtifactMap, toscaTemplate);
+ } else if("VL".equals(toscaTemplate.getMetadata().get("type"))){
+ testL3NetworkResourceTosca(outputArtifactMap, toscaTemplate);
+ }
+ }
+ }
+
+ public static void testVfTosca(Map<String, Model> outputArtifactMap , ToscaTemplate resourceTosca) {
+ try {
+ //ToscaTemplate resourceTosca = getResourceTosca(toscas);
+ //resourceTosca.getTopology_template().getGroups().
+ if (resourceTosca != null) {
+ Resource resource = new Resource();
+ resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+ String resourceNameVersionId = resource.getModelNameVersionId();
+ Model resourceAAIModel =
+ getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+ if (resourceAAIModel != null) {
+ validateResourceModelMetadata(resource, resourceAAIModel);
+ //Validate Resource instance base widget
+
+ ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.VF).getId());
+ validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+ Widget.getWidget(Widget.Type.VF).getName());
+
+ validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.VF).getName(),
+ Widget.getWidget(Widget.Type.VF).getWidgetId());
+
+ ModelElements baseResourceWidgetModelElements =
+ matchedVFBaseWidgetElements.get(0).getModelElements();
+ if (resourceTosca.getTopology_template() != null) {
+ Map<String, String> groupIdTypeStore = getGroupsTypeStore(resourceTosca);
+
+ if (baseResourceWidgetModelElements.getModelElement().size() !=
+ groupIdTypeStore.size()) {
+ org.testng.Assert.fail("Missing VFModule in VF model.xml");
+ }
+
+ for (String key : groupIdTypeStore.keySet()) {
+
+ List<ModelElement> matchedResourceElements =
+ getModelElementbyRelationshipValue(baseResourceWidgetModelElements, key);
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.VFMODULE).getName());
+ Model resourceAAIVFModel = getAAIModelByNameVersionId(key, outputArtifactMap);
+ Map<String, String> vfModuleModelMetadata =
+ getVFModuleMetadataTosca(resourceTosca, key);
+ Map<String, Object> vfModuleMembers = getVFModuleMembersTosca(resourceTosca, key);
+
+ validateVFModelMetadata(vfModuleModelMetadata, resourceAAIVFModel);
+
+
+ ModelVer modelVfVersion = resourceAAIVFModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFModuleBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVfVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.VFMODULE).getId());
+ validateMatchedModelElementsInService(matchedVFModuleBaseWidgetElements,
+ Widget.getWidget(Widget.Type.VFMODULE).getName());
+ validateWidgetIds(matchedVFModuleBaseWidgetElements, Widget.getWidget(Widget.Type.VFMODULE)
+ .getName(), Widget.getWidget(Widget.Type.VFMODULE).getWidgetId());
+
+ ModelElements baseResourceVFModuleWidgetModelElements =
+ matchedVFModuleBaseWidgetElements.get(0).getModelElements();
+ if (vfModuleMembers.containsKey("l3-network")) {
+ //Validate l3
+ List<ModelElement> matchedL3NetworkElements =
+ getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+ Widget.getWidget(Widget.Type.L3_NET).getId());
+ validateMatchedModelElementsInService(matchedL3NetworkElements,
+ Widget.getWidget(Widget.Type.L3_NET).getName());
+ validateWidgetIds(matchedL3NetworkElements, Widget.getWidget(Widget.Type.L3_NET)
+ .getName(), Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+ }
+ if (vfModuleMembers.containsKey("vserver")) {
+ //Validate vserver
+ List<ModelElement> matchedVserverElements =
+ getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+ Widget.getWidget(Widget.Type.VSERVER).getId());
+ validateMatchedModelElementsInService(matchedVserverElements,
+ Widget.getWidget(Widget.Type.VSERVER).getName());
+ ModelElements vserverWidgetModelElements =
+ matchedVserverElements.get(0).getModelElements();
+
+ validateWidgetIds(matchedVserverElements, Widget.getWidget(Widget.Type.VSERVER)
+ .getName(), Widget.getWidget(Widget.Type.VSERVER).getWidgetId());
+
+
+ //Validate vserver->vfc
+ List<ModelElement> matchedVfcElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.VFC).getId());
+ validateMatchedModelElementsInService(matchedVfcElements,
+ Widget.getWidget(Widget.Type.VFC).getName());
+ validateWidgetIds(matchedVfcElements, Widget.getWidget(Widget.Type.VFC).getName(),
+ Widget.getWidget(Widget.Type.VFC).getWidgetId());
+
+ //Validate vserver->Image
+ List<ModelElement> matchedImageElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.IMAGE).getId());
+ validateMatchedModelElementsInService(matchedImageElements,
+ Widget.getWidget(Widget.Type.IMAGE).getName());
+ validateWidgetIds(matchedImageElements, Widget.getWidget(Widget.Type.IMAGE)
+ .getName(), Widget.getWidget(Widget.Type.IMAGE).getWidgetId());
+
+
+ //Validate vserver->Flavor
+ List<ModelElement> matchedFlavorElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.FLAVOR).getId());
+ validateMatchedModelElementsInService(matchedFlavorElements,
+ Widget.getWidget(Widget.Type.FLAVOR).getName());
+ validateWidgetIds(matchedFlavorElements, Widget.getWidget(Widget.Type.FLAVOR).getName(),
+ Widget.getWidget(Widget.Type.FLAVOR).getWidgetId());
+
+ //Validate vserver->Tenant
+ List<ModelElement> matchedTenantElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.TENANT).getId());
+ validateMatchedModelElementsInService(matchedTenantElements,
+ Widget.getWidget(Widget.Type.TENANT).getName());
+ validateWidgetIds(matchedTenantElements, Widget.getWidget(Widget.Type.TENANT).getName(),
+ Widget.getWidget(Widget.Type.TENANT).getWidgetId());
+
+ //Validate vserver->l-interface
+ if (vfModuleMembers.containsKey("l-interface")) {
+ List<ModelElement> matchedLinterfaceElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.LINT).getId());
+ validateMatchedModelElementsInService(matchedLinterfaceElements,
+ Widget.getWidget(Widget.Type.LINT).getName());
+ validateWidgetIds(matchedLinterfaceElements, Widget.getWidget(Widget.Type.LINT).getName(),
+ Widget.getWidget(Widget.Type.LINT).getWidgetId());
+ }
+ //Validate vserver->volume
+ if (vfModuleMembers.containsKey("volume")) {
+ List<ModelElement> matchedVolumeElements =
+ getModelElementbyRelationshipValue(vserverWidgetModelElements,
+ Widget.getWidget(Widget.Type.VOLUME).getId());
+ validateMatchedModelElementsInService(matchedVolumeElements,
+ Widget.getWidget(Widget.Type.VOLUME).getName());
+ validateWidgetIds(matchedVolumeElements, Widget.getWidget(Widget.Type.VOLUME).getName(),
+ Widget.getWidget(Widget.Type.VOLUME).getWidgetId());
+ }
+ }
+ }
+ }
+ } else {
+ System.out.println("Resource mapping not found for " + resourceNameVersionId);
+ }
+ }
+
+ } catch (IllegalArgumentException e) {
+ org.testng.Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+
+ }
+
+ public static void testAllottedResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+ resourceTosca) {
+ try {
+ if (resourceTosca != null) {
+ Resource resource = new Resource();
+ resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+ String resourceNameVersionId = resource.getModelNameVersionId();
+ Model resourceAAIModel =
+ getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+ if (resourceAAIModel != null) {
+ validateResourceModelMetadata(resource, resourceAAIModel);
+ //Validate Resource instance base widget
+
+ ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getId());
+ validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+
+ validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName(),
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getWidgetId());
+
+ validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName(),
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getWidgetId());
+
+ Map<String, Object> providingServiceDetails = getProvidingServiceDetails(resourceTosca);
+
+ ModelElements containedModelElements = modelVersion.getModelElements().getModelElement().
+ get(0).getModelElements();
+
+ org.testng.Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+ .getRelationship().get(0).getRelationshipData().get(0).getRelationshipValue(),
+ providingServiceDetails.get("providing_service_uuid"));
+
+ org.testng.Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+ .getRelationship().get(0).getRelationshipData().get(1).getRelationshipValue(),
+ providingServiceDetails.get("providing_service_invariant_uuid"));
+
+
+ if("Allotted Resource".equals(resourceTosca.getMetadata().get("category")) &&
+ "Tunnel XConnect".equals(resourceTosca.getMetadata().get("subcategory"))) {
+
+ List<ModelElement> matchedTunnelXConnectWidgetElements =
+ getModelElementbyRelationshipValue(containedModelElements,
+ Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getId());
+ validateMatchedModelElementsInService(matchedTunnelXConnectWidgetElements,
+ Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName());
+
+ validateWidgetIds(matchedTunnelXConnectWidgetElements, Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName(),
+ Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getWidgetId());
+ }
+
+ }else {
+ System.out.println("Resource mapping not found for " + resourceNameVersionId);
+ }
+ }
+
+ }catch (IllegalArgumentException e) {
+ org.testng.Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+
+ }
+
+ public static Map<String, Object> getProvidingServiceDetails(ToscaTemplate resourceTemplate) {
+ Set<String> keys = resourceTemplate.getTopology_template().getNode_templates().keySet();
+
+ Map<String, Object> nodeProperties =null;
+ for(String key : keys) {
+ NodeTemplate node = resourceTemplate.getTopology_template().getNode_templates().get(key);
+ if(node.getType().contains("org.openecomp.resource.vfc") &&
+ node.getMetadata().get("category").equals("Allotted Resource")) {
+ nodeProperties = node.getProperties();
+ }
+ }
+
+ return nodeProperties;
+ }
+
+ public static void testL3NetworkResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+ resourceTosca) {
+ try {
+ if (resourceTosca != null) {
+ Resource resource = new Resource();
+ resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+ String resourceNameVersionId = resource.getModelNameVersionId();
+ Model resourceAAIModel =
+ getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+ if (resourceAAIModel != null) {
+ validateResourceModelMetadata(resource, resourceAAIModel);
+ //Validate Resource instance base widget
+
+ ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedVFBaseWidgetElements =
+ getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.L3_NET).getId());
+ validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+ Widget.getWidget(Widget.Type.L3_NET).getName());
+
+ validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.L3_NET).getName(),
+ Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+
+ }else {
+ System.out.println("Resource mapping not found for " + resourceNameVersionId);
+ }
+ }
+
+ }catch (IllegalArgumentException e) {
+ org.testng.Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+
+ }
+
+ public static void testServiceTosca(Map<String, Model> outputArtifactMap,List<ToscaTemplate>
+ toscas) {
+ try {
+ ToscaTemplate serviceTosca = getServiceTosca(toscas);
+ if (serviceTosca == null) {
+ org.testng.Assert.fail("Service Tosca not found");
+ }
+ serviceTosca.getMetadata().put("version", additionalParams.get(AdditionalParams
+ .ServiceVersion.getName()));
+ Service service = new Service();
+ service.populateModelIdentificationInformation(serviceTosca.getMetadata());
+ String serviceNameVersionId = service.getModelNameVersionId();
+ Model serviceAAIModel = getAAIModelByNameVersionId(serviceNameVersionId, outputArtifactMap);
+ validateServiceModelMetadata(service, serviceAAIModel);
+ //Validate Service instance base widget
+ ModelVer modelVersion = serviceAAIModel.getModelVers().getModelVer().get(0);
+
+ List<ModelElement> matchedServiceBaseWidgetElements =
+ getModelElementbyRelationshipValue( modelVersion.getModelElements(),
+ Widget.getWidget(Widget.Type.SERVICE).getId());
+ validateMatchedModelElementsInService(matchedServiceBaseWidgetElements,
+ Widget.getWidget(Widget.Type.SERVICE).getName());
+
+ validateWidgetIds(matchedServiceBaseWidgetElements, Widget.getWidget(Widget.Type.SERVICE).getName(),
+ Widget.getWidget(Widget.Type.SERVICE).getWidgetId());
+
+ ModelElements baseServiceWidgetModelElements =
+ matchedServiceBaseWidgetElements.get(0).getModelElements();
+
+
+ Map<String, String> nodeTemplateIdTypeStore = getNodeTemplateTypeStore(serviceTosca);
+ if (nodeTemplateIdTypeStore != null) {
+ for (String key : nodeTemplateIdTypeStore.keySet()) {
+ if (nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vf")) {
+ List<ModelElement> matchedResourceElements =
+ getModelElementbyRelationshipValue(baseServiceWidgetModelElements, key);
+ if (nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vf.allottedResource")){
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+ }else {
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.VF).getName());
+ }
+
+ //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+ org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+ .getRelationship().get(0)
+ .getRelationshipData().get(0).getRelationshipValue(),key);
+
+ org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+ .get(key+"-INV_UID"));
+ } else if(nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vl")){
+ //validate l3-network in service tosca
+ List<ModelElement> matchedResourceElements =
+ getModelElementbyRelationshipValue(baseServiceWidgetModelElements, key);
+ validateMatchedModelElementsInService(matchedResourceElements,
+ Widget.getWidget(Widget.Type.L3_NET).getName());
+ //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+ org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+ .getRelationship().get(0)
+ .getRelationshipData().get(0).getRelationshipValue(),key);
+
+ org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+ .get(key+"-INV_UID"));
+ }
+ }
+
+
+ System.out.println();
+
+ }
+ } catch (IllegalArgumentException e) {
+ org.testng.Assert.fail(e.getMessage()); //Can come while populating metadata
+ }
+ }
+
+ private static void validateWidgetIds(List<ModelElement> matchedServiceBaseWidgetElements,
+ String widgetName, String widgetInvUuId) {
+ org.testng.Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(0).getRelationshipValue(), properties.getProperty(ArtifactType.AAI.name()
+ + ".model-version-id."+ widgetName));
+
+ org.testng.Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+ .getRelationshipData().get(1).getRelationshipValue(), widgetInvUuId);
+ }
+
+
+
+ private static void validateMatchedModelElementsInService(List<ModelElement> matchedModelElements, String modelType) {
+ if (matchedModelElements.isEmpty()) {
+ Assert.fail(modelType + " not present ");
+ }
+ if (matchedModelElements.size() > 1) {
+ Assert.fail("More than one " + modelType + " present ");
+ }
+ }
+
+ private static Map<String, String> getNodeTemplateTypeStore(ToscaTemplate toscaTemplate) {
+ if (toscaTemplate.getTopology_template() != null) {
+ Map<String, NodeTemplate> nodeTemplateMap =
+ toscaTemplate.getTopology_template().getNode_templates();
+ Map<String, String> nodeTemplateIdTypeStore = new LinkedHashMap<>();
+ if (nodeTemplateMap != null) {
+ for (Map.Entry<String, NodeTemplate> e : nodeTemplateMap.entrySet()) {
+ String uuid = e.getValue().getMetadata().get("resourceUUID");
+ if (GeneratorUtil.isEmpty(uuid)) {
+ uuid = e.getValue().getMetadata().get("UUID");
+ if (GeneratorUtil.isEmpty(uuid)) {
+ Assert.fail("UUID Not found");
+ }
+ }
+ if(e.getValue().getType().contains("org.openecomp.resource.vf.")&& (e.getValue()
+ .getMetadata().get("category").equals("Allotted Resource")))
+ {
+ e.getValue().setType("org.openecomp.resource.vf.allottedResource");
+ }
+ nodeTemplateIdTypeStore.put(uuid, e.getValue().getType());
+ resourcesVersion.put(uuid,e.getValue().getMetadata().get
+ ("version"));
+ //Populate invraintUuId for V9
+ String invUuId = e.getValue().getMetadata().get("invariantUUID");
+ nodeTemplateIdTypeStore.put(uuid+"-INV_UID" , invUuId);
+ }
+ }
+ return nodeTemplateIdTypeStore;
+ } else {
+ return null;
+ }
+ }
+
+
+ private static Map<String, String> getGroupsTypeStore(ToscaTemplate toscaTemplate) {
+ if(toscaTemplate.getTopology_template() !=null) {
+ Map<String, GroupDefinition> groupDefinitionMap = toscaTemplate.getTopology_template().getGroups();
+ Map<String, String> groupDefinitionIdTypeStore = new LinkedHashMap<>();
+ if (groupDefinitionMap != null) {
+ for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+ if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+ String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+ if (GeneratorUtil.isEmpty(uuid)) {
+ uuid = e.getValue().getMetadata().get("UUID");
+ if (GeneratorUtil.isEmpty(uuid))
+ Assert.fail("UUID Not found");
+ }
+ groupDefinitionIdTypeStore.put(uuid, e.getValue().getType());
+ }
+ }
+ }
+ return groupDefinitionIdTypeStore;
+ }
+ else {
+ return null;
+ }
+ }
+
+ private static void validateServiceModelMetadata(Service serviceToscaModel, Model generatedAAIModel) {
+ Assert.assertEquals(serviceToscaModel.getModelNameVersionId(), generatedAAIModel
+ .getModelVers().getModelVer().get(0).getModelVersionId());
+ Assert.assertEquals(serviceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+ Assert.assertEquals(serviceToscaModel.getModelName(), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelName());
+ Assert.assertEquals(serviceToscaModel.getModelVersion(), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelVersion());
+ Assert.assertEquals(serviceToscaModel.getModelDescription(), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelDescription());
+ }
+
+ private static void validateResourceModelMetadata(Resource resouerceToscaModel, Model generatedAAIModel) {
+ Assert.assertEquals(resouerceToscaModel.getModelNameVersionId(), generatedAAIModel
+ .getModelVers().getModelVer().get(0).getModelVersionId());
+ Assert.assertEquals(resouerceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+ Assert.assertEquals(resouerceToscaModel.getModelName(), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelName());
+ Assert.assertEquals(resouerceToscaModel.getModelVersion(), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelVersion());
+ Assert.assertEquals(resouerceToscaModel.getModelDescription(), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelDescription());
+ }
+
+ private static void validateVFModelMetadata(Map<String, String> vfModuleModelMetadata, Model generatedAAIModel) {
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelUUID"), generatedAAIModel
+ .getModelVers().getModelVer().get(0).getModelVersionId());
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelInvariantUUID"), generatedAAIModel.getModelInvariantId());
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelName"), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelName());
+ Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelVersion"), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelVersion());
+ Assert.assertEquals(vfModuleModelMetadata.get("vf_module_description"), generatedAAIModel.getModelVers()
+ .getModelVer().get(0).getModelDescription());
+
+ }
+
+ private static Model getAAIModelByNameVersionId(String nameVersionId,
+ Map<String, Model> outputArtifactMap) {
+ return outputArtifactMap.get(nameVersionId);
+ }
+
+ private static List<ModelElement> getModelElementbyRelationshipValue(ModelElements modelElements,
+ String relationshipValue) {
+ List<ModelElement> matchedModelElements = new ArrayList<>();
+ if (modelElements != null) {
+ List<ModelElement> modelElementList = modelElements.getModelElement();
+ for (ModelElement element : modelElementList) {
+ List<Relationship> relationshipList = element.getRelationshipList().getRelationship();
+ for (Relationship r : relationshipList) {
+ List<RelationshipData> relationshipDataList = r.getRelationshipData();
+ for (RelationshipData relationshipData : relationshipDataList) {
+ if (relationshipData.getRelationshipValue().equals(relationshipValue))
+ matchedModelElements.add(element);
+ }
+ }
+ }
+ }
+ return matchedModelElements;
+ }
+
+ public static void populateAAIGeneratedModelStore(Map<String, Model> outputArtifactMap,List<Artifact> resultData) {
+ for (Artifact outputArtifact : resultData) {
+ if (outputArtifact.getType().equals(ArtifactType.MODEL_INVENTORY_PROFILE.name())) {
+ byte[] decodedPayload = GeneratorUtil.decoder(outputArtifact.getPayload());
+ Model aaiModel = getUnmarshalledArtifactModel(new String(decodedPayload));
+ outputArtifactMap.put(aaiModel.getModelVers().getModelVer().get(0).getModelVersionId(), aaiModel);
+ }
+ }
+ }
+
+ private static Model getUnmarshalledArtifactModel(String aaiModel) {
+ JAXBContext jaxbContext;
+ try {
+ jaxbContext = JAXBContext.newInstance(Model.class);
+ Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+ InputStream aaiModelStream = new ByteArrayInputStream(aaiModel.getBytes());
+ return (Model) unmarshaller.unmarshal(aaiModelStream);
+ } catch (JAXBException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * Identify the service tosca artifact from the list of translated tosca inputs
+ *
+ * @param input List of translated {@link ToscaTemplate tosca} object models
+ * @return Identified service {@link ToscaTemplate tosca}
+ */
+ private static ToscaTemplate getServiceTosca(List<ToscaTemplate> input) {
+ Iterator<ToscaTemplate> iter = input.iterator();
+ while (iter.hasNext()) {
+ ToscaTemplate tosca = iter.next();
+ if (tosca.isService()) {
+ iter.remove();
+ return tosca;
+ }
+ }
+ return null;
+ }
+
+
+ private static ToscaTemplate getResourceTosca(List<ToscaTemplate> input) {
+ Iterator<ToscaTemplate> iter = input.iterator();
+ while (iter.hasNext()) {
+ ToscaTemplate tosca = iter.next();
+ if (!tosca.isService()) {
+ iter.remove();
+ return tosca;
+ }
+ }
+ return null;
+ }
+
+
+ private static Map<String, String> getVFModuleMetadataTosca(ToscaTemplate toscaTemplate, String vfModuleModelUUID) {
+ Map<String, GroupDefinition> groupDefinitionMap = toscaTemplate.getTopology_template().getGroups();
+ Map<String, String> vfModuleModelMetadata = new LinkedHashMap<>();
+ for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+ if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+ String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+ if (uuid == vfModuleModelUUID) {
+ vfModuleModelMetadata = e.getValue().getMetadata();
+ vfModuleModelMetadata.put("vf_module_description", (String) e.getValue().getProperties().get("vf_module_description"));
+ }
+ }
+ }
+ return vfModuleModelMetadata;
+ }
+
+ private static Map<String, Object> getVFModuleMembersTosca(ToscaTemplate toscaTemplate, String vfModuleModelUUID) {
+ Map<String, GroupDefinition> groupDefinitionMap = toscaTemplate.getTopology_template().getGroups();
+ Map<String, NodeTemplate> nodeTemplateMaps = toscaTemplate.getTopology_template().getNode_templates();
+ Map<String, Object> vfModuleMembers = new LinkedHashMap<>();
+ List<String> vfModuleModelMetadata = new ArrayList<>();
+ for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+ if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+ String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+ if (uuid == vfModuleModelUUID) {
+ vfModuleModelMetadata = e.getValue().getMembers();
+ Iterator itr = vfModuleModelMetadata.iterator();
+ while (itr.hasNext()) {
+ Object obj= itr.next();
+ NodeTemplate nodeTemplate = nodeTemplateMaps.get(obj);
+ String nodetype = null;
+ if (nodeTemplate != null)
+ nodetype = nodeTemplate.getType();
+ if (nodetype != null) {
+ String widgetType = membersType(nodetype);
+ if (widgetType != null)
+ vfModuleMembers.put(widgetType, obj);
+ }
+ }
+
+ }
+ }
+ }
+
+ return vfModuleMembers;
+ }
+
+
+ private static String membersType(String toscaType) {
+ String modelToBeReturned = null;
+ while (toscaType != null && toscaType.lastIndexOf(".") != -1 && modelToBeReturned == null) {
+
+ switch (toscaType) {
+
+ case "org.openecomp.resource.vfc":
+ modelToBeReturned = "vserver";
+ break;
+ case "org.openecomp.resource.cp":
+ case "org.openecomp.cp":
+ modelToBeReturned = "l-interface";
+ break;
+ case "org.openecomp.resource.vl":
+ modelToBeReturned = "l3-network";
+ break;
+ case "org.openecomp.resource.vf":
+ modelToBeReturned = "generic-vnf";
+ break;
+ case "org.openecomp.groups.VfModule":
+ modelToBeReturned = "vf-module";
+ break;
+ case "org.openecomp.resource.vfc.nodes.heat.cinder":
+ modelToBeReturned = "volume";
+ break;
+ default:
+ modelToBeReturned = null;
+ break;
+ }
+
+ toscaType = toscaType.substring(0, toscaType.lastIndexOf("."));
+ }
+ return modelToBeReturned;
+ }
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java
new file mode 100644
index 0000000000..bbbb74dc05
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java
@@ -0,0 +1,1805 @@
+/*-
+ * ============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.generator;
+
+import org.openecomp.sdc.generator.aai.model.Widget;
+import org.openecomp.sdc.generator.aai.tosca.ToscaTemplate;
+import org.openecomp.sdc.generator.aai.xml.Model;
+import org.openecomp.sdc.generator.data.*;
+import org.openecomp.sdc.generator.impl.ArtifactGenerationServiceImpl;
+
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.*;
+import java.util.*;
+
+import static org.openecomp.sdc.generator.ArtifactGenerationServiceTest.*;
+import static org.openecomp.sdc.generator.data.GeneratorConstants.*;
+
+public class SampleJUnitTest extends TestCase {
+
+ public static final String aaiArtifactType = ArtifactType.AAI.name();
+ public static final String aaiArtifactGroupType = GroupType.DEPLOYMENT.name();
+ public static final String generatorConfig = "{\"artifactTypes\": [\"OTHER\",\"AAI\"]}";
+ public static final String ARTIFACTGENERATOR_CONFIG = "artifactgenerator.config";
+ public static final String CONFIG_PATH = "/qa-test-repo/jmeter3/apache-jmeter-3" +
+ ".0/lib/junit/";
+ //public static final String CONFIG_PATH ="C:\\Jmeter-Copy\\jmeter3\\apache-jmeter-3" +
+ //".0\\lib\\junit\\";
+ public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
+ "Cannot generate artifacts. Widget configuration not found for %s";
+ public static final String GENERATOR_AAI_CONFIGFILE_NOT_FOUND =
+ "Cannot generate artifacts. Artifact Generator Configuration file not found at %s";
+ public static final String GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND =
+ "Cannot generate artifacts. artifactgenerator.config system property not configured";
+ public static final String INVALID_VALUE_INVARIANT =
+ "Invalid value for mandatory attribute <invariantUUID> in Artifact";
+ public static final String INVALID_VALUE_UUID =
+ "Invalid value for mandatory attribute <UUID> in Artifact:";
+ public static final Map<String, String> additionalParams = new HashMap<>();
+
+ static{
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+ }
+
+ private void loadConfig(Properties properties) throws IOException {
+ String configLocation = System.getProperty(ARTIFACTGENERATOR_CONFIG);
+ if (configLocation != null) {
+ File file = new File(configLocation);
+ if (file.exists()) {
+ properties.load(new FileInputStream(file));
+ }
+ }
+ }
+ public SampleJUnitTest(String name) throws Exception {
+ super(name);
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator.properties");
+ loadConfig(ArtifactGenerationServiceTest.properties);
+ }
+
+ public SampleJUnitTest() {
+ super();
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator.properties");
+ }
+
+ @Test
+ public void testArtifactGenerationSingleVFSingleVFModule() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SingleVFVFMod.yml");
+ readPayload(inputArtifacts, fis1, "vf_vmme_template_SingleVFVFMod.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SingleVFVFMod.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_SingleVFVFMod.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationMissingVFInServiceTOSCA() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MissingVFInServiceTOSCA.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_MissingVFInServiceTOSCA.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+
+ Assert.assertEquals(3, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationVerifySameStaticWidgetsForAllServices() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SameWidgets1.yml");
+ readPayload(inputArtifacts, fis1, "vf_vmme_template_SameWidgets1.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SameWidget1.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_SameWidget1.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+
+ removeMockArtifact(data.getResultData().iterator());
+
+
+ List<Artifact> inputArtifacts2 = new ArrayList();
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SameWidgets2.yml");
+ readPayload(inputArtifacts2, fis3, "vf_vmme_template_SameWidgets2.yml");
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SameWidget2.yml");
+ readPayload(inputArtifacts2, fis4, "service_vmme_template_SameWidget2.yml");
+ ArtifactGenerationServiceImpl obj2 = new ArtifactGenerationServiceImpl();
+
+ GenerationData data2 = obj2.generateArtifact(inputArtifacts2, generatorConfig,additionalParams);
+ List<Artifact> resultData2 = data2.getResultData();
+
+ List<ToscaTemplate> toscas2 = new LinkedList();
+
+ for (Artifact inputArtifact : inputArtifacts2) {
+ toscas2.add(getToscaModel(inputArtifact));
+ }
+
+ Map<String, Model> outputArtifactMap2 = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2, resultData2);
+ removeMockArtifact(data2.getResultData().iterator());
+
+ Map<String,String> map = new HashMap<>();
+ Iterator<Artifact> itr = data.getResultData().iterator();
+ while(itr.hasNext()){
+ Artifact artifact=itr.next();
+ if(artifact.getLabel().contains("AAI-widget")){
+ map.put(artifact.getName(),artifact.getChecksum());
+ }
+ }
+ Map<String,String> map2 = new HashMap<>();
+ Iterator<Artifact> itr2 = data2.getResultData().iterator();
+ while(itr2.hasNext()){
+ Artifact artifact=itr2.next();
+ if(artifact.getLabel().contains("AAI-widget")){
+ map2.put(artifact.getName(),artifact.getChecksum());
+ }
+ }
+ Assert.assertEquals(map.size(),map2.size());
+ for(String name : map.keySet()){
+ Assert.assertEquals(map.get(name),map2.get(name));
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationMulVFModule() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ String[] resourceFileList = {};
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_MulVFVFMod.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_MulVFVFMod.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MulVFVFMod.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_MulVFVFMod.yml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(3,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationMulVFs() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/CMAUI_VF.yaml");
+ readPayload(inputArtifacts,fis3, "CMAUI_VF.yaml");
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VF.yaml");
+ readPayload(inputArtifacts,fis4, "ECA_OAM_VF.yaml");
+
+ InputStream fis5 = SampleJUnitTest.class.getResourceAsStream("/MMSC_Sevice_07_25_16.yaml");
+ readPayload(inputArtifacts,fis5, "MMSC_Sevice_07_25_16.yaml");
+
+ InputStream fis6 = SampleJUnitTest.class.getResourceAsStream("/MMSC_VF.yaml");
+ readPayload(inputArtifacts,fis6, "MMSC_VF.yaml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(8,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationDupVFUUID() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DupVFUUID.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_DupVFUUID.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DupVFUUID.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_DupVFUUID.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationDupVFModUUID() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DupVFModUUID.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_DupVFModUUID.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DupVFModUUID.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_DupVFModUUID.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationVerifyVFModWithoutVNFC() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyVFModWithoutVNFC.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_VerifyVFModWithoutVNFC.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyVFModWithoutVNFC.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_VerifyVFModWithoutVNFC.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationVerifyVFModWithInvalidMember() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyVFModWithInvalidNo.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_VerifyVFModWithInvalidNo.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyVFModWithInvalidNo.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_VerifyVFModWithInvalidNo.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationNullFields() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NullFields.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_NullFields.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NullFields.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_NullFields.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+ Assert.assertEquals("Invalid Service/Resource definition mandatory attribute <UUID> missing in Artifact: <"+inputArtifacts.get(0).getName()+">",data.getErrorData().get("AAI").get(0));
+
+ Assert.assertEquals(2,data.getResultData().size());
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationInCorrectYmlFormat() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/CMAUI_VFInvalidFormat.yaml");
+ readPayload(inputArtifacts,fis3, "CMAUI_VFInvalidFormat.yaml");
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VFInvalidFormat.yaml");
+ readPayload(inputArtifacts,fis4, "ECA_OAM_VFInvalidFormat.yaml");
+
+ InputStream fis5 = SampleJUnitTest.class.getResourceAsStream("/MMSC_Sevice_07_25_16InvalidFormat.yaml");
+ readPayload(inputArtifacts,fis5, "MMSC_Sevice_07_25_16InvalidFormat.yaml");
+
+ InputStream fis6 = SampleJUnitTest.class.getResourceAsStream("/MMSC_VFInvalidFormat.yaml");
+ readPayload(inputArtifacts,fis6, "MMSC_VFInvalidFormat.yaml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+ Assert.assertEquals("Invalid format for Tosca YML : "+inputArtifacts.get(1).getName(),data.getErrorData().get("AAI").get(0));
+
+ Assert.assertEquals(2,data.getResultData().size());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationMulComp() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_MulComp.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_MulComp.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MulComp.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_MulComp.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationOrphan() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_Orphan.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_Orphan.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_Orphan.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_Orphan.yml");
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VFOrphan.yaml");
+ readPayload(inputArtifacts,fis4, "ECA_OAM_VFOrphan.yaml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationMissingVFTemplate() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MissingVFTemplate.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_MissingVFTemplate.yml");
+
+ fis1.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+
+
+ Assert.assertEquals(3,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationMissingVFModule() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/CMAUI_VFMissingVFModule.yaml");
+ readPayload(inputArtifacts,fis3, "CMAUI_VFMissingVFModule.yaml");
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VFMissingVFModule.yaml");
+ readPayload(inputArtifacts,fis4, "ECA_OAM_VFMissingVFModule.yaml");
+
+ InputStream fis5 = SampleJUnitTest.class.getResourceAsStream("/MMSC_Sevice_07_25_16MissingVFModule.yaml");
+ readPayload(inputArtifacts,fis5, "MMSC_Sevice_07_25_16MissingVFModule.yaml");
+
+ InputStream fis6 = SampleJUnitTest.class.getResourceAsStream("/MMSC_VFMissingVFModule.yaml");
+ readPayload(inputArtifacts,fis6, "MMSC_VFMissingVFModule.yaml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(8,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationEmptyArtifact() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+ Assert.assertEquals("Service tosca missing from list of input artifacts",data.getErrorData().get("AAI").get(0));
+
+ Assert.assertEquals(2,data.getResultData().size());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationMissingConfigFile() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SingleVFVFMod.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_SingleVFVFMod.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SingleVFVFMod.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_SingleVFVFMod.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, "",additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+ Assert.assertEquals("Invalid Client Configuration",data.getErrorData().get("ARTIFACT_GENERATOR_INVOCATION_ERROR").get(0));
+
+ Assert.assertEquals(0,data.getResultData().size());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+
+ @Test
+ public void testArtifactGenerationWithNodeTemplates() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/ServiceWithNodetemplate.yml");
+ readPayload(inputArtifacts,fis1, "ServiceWithNodetemplate.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/Resource0-template.yml");
+ readPayload(inputArtifacts,fis2, "Resource0-template.yml");
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/Resource1-template.yml");
+ readPayload(inputArtifacts,fis3, "Resource1-template.yml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithoutNodeTemplates() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/Service0-template.yml");
+ readPayload(inputArtifacts,fis1, "Service0-template.yml");
+
+ fis1.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+
+
+ Assert.assertEquals(3,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithArtifactNameAndDescMoreThan256() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/Service0-templateMoreThan256.yml");
+ readPayload(inputArtifacts,fis1, "Service0-templateMoreThan256.yml");
+
+ fis1.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+
+
+ Assert.assertEquals(3,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ for(Artifact artifact : data.getResultData()){
+ checkArtifactName(artifact.getName());
+ checkArtifactLabel(artifact.getLabel());
+ checkArtifactDescription(artifact.getDescription());
+
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithDifferentVersionOfSameVF() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DiffVerOfSameVF.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_DiffVerOfSameVF.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DiffVerOfSameVF_1.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_DiffVerOfSameVF_1.yml");
+ fis2.close();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DiffVerOfSameVF_2.yml");
+ readPayload(inputArtifacts,fis3, "vf_vmme_template_DiffVerOfSameVF_2.yml");
+ fis3.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(6,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithDifferentVersionOfSameVFModWithSameInvId() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
+ fis2.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(6,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithServiceContainingL3Network() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithL3Network.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_WithL3Network.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithL3Network.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_WithL3Network.yml");
+ fis2.close();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithL3Network.yml");
+ readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithL3Network.yml");
+ fis3.close();
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-Extvl-template_WithL3Network.yml");
+ readPayload(inputArtifacts,fis4, "resource-Extvl-template_WithL3Network.yml");
+ fis4.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(7,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithServiceContainingDupL3Network() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithDupL3Network.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_WithDupL3Network.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithDupL3Network.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_WithDupL3Network.yml");
+ fis2.close();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithDupL3Network.yml");
+ readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithDupL3Network.yml");
+ fis3.close();
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-Extvl-template_WithDupL3Network.yml");
+ readPayload(inputArtifacts,fis4, "resource-Extvl-template_WithDupL3Network.yml");
+ fis4.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(7,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithL3NetworkInVFMod() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithL3NetworkInVFMod.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_WithL3NetworkInVFMod.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithL3NetworkInVFMod.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_WithL3NetworkInVFMod.yml");
+ fis2.close();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
+ readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
+ fis3.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(6,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithDiffVersionOfSameL3Network() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithDiffVersionOfSameL3Network.yml");
+ readPayload(inputArtifacts,fis1, "service_vmme_template_WithDiffVersionOfSameL3Network.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
+ readPayload(inputArtifacts,fis2, "vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
+ fis2.close();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
+ readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
+ fis3.close();
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
+ readPayload(inputArtifacts,fis4, "resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
+ fis4.close();
+
+ InputStream fis5 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
+ readPayload(inputArtifacts,fis5,
+ "resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
+ fis5.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(8,data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithInvIdGreaterThanSpecifiedLimit() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit" +
+ ".yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ fis2.close();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+ Assert.assertEquals(INVALID_VALUE_INVARIANT + ": <" +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
+
+ Assert.assertEquals(2,data.getResultData().size());
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithInvIdLesserThanSpecifiedLimit() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_WithInvIdLesserThanSpecifiedLimit" +
+ ".yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ fis2.close();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+ Assert.assertEquals(INVALID_VALUE_UUID + " <"
+ +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
+
+ Assert.assertEquals(2,data.getResultData().size());
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+ }
+
+
+ @Test
+ public void testErrorWhenNoSystemPropConfigured() throws Exception {
+ String configLoc = System.getProperty(ARTIFACTGENERATOR_CONFIG);
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NoSystemPropConfigured.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_NoSystemPropConfigured" +
+ ".yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NoSystemPropConfigured.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_NoSystemPropConfigured.yml");
+ fis2.close();
+
+ System.clearProperty(ARTIFACTGENERATOR_CONFIG);
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+ Assert.assertEquals(data.getErrorData().
+ get("AAI").get(0), GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,configLoc);
+ }
+ }
+
+ @Test
+ public void testErrorWhenNoFileAtConfigLocation() throws Exception {
+ String configLoc = System.getProperty(ARTIFACTGENERATOR_CONFIG);
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NoSystemPropConfigured.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_NoSystemPropConfigured" +
+ ".yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NoSystemPropConfigured.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_NoSystemPropConfigured.yml");
+ fis2.close();
+
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,configLoc + File.separator + "testErrorWhenNoFileAtConfigLocation");
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(
+ GENERATOR_AAI_CONFIGFILE_NOT_FOUND,System.getProperty
+ (ARTIFACTGENERATOR_CONFIG)));
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ finally{
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,configLoc);
+ }
+ }
+
+ @Test
+ public void testErrorWhenNoWidgetInConfig() throws Exception {
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator1.properties");
+ loadConfig(ArtifactGenerationServiceTest.properties);
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NoSystemPropConfigured.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_NoSystemPropConfigured" +
+ ".yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NoSystemPropConfigured.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_NoSystemPropConfigured.yml");
+ fis2.close();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ String assertMsg = ArtifactType.AAI.name() + ".model-version-id." + Widget.getWidget
+ (Widget.Type.SERVICE).getName();
+
+ Assert.assertEquals(false,data.getErrorData().isEmpty());
+ String errMsg = String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,assertMsg);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),errMsg);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ } finally {
+ System.setProperty(ARTIFACTGENERATOR_CONFIG, CONFIG_PATH+"Artifact-Generator.properties");
+ loadConfig(ArtifactGenerationServiceTest.properties);
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithUpdatedUUIDInConfig() throws Exception {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithUpdatedUUIDInConfig.yml");
+ readPayload(inputArtifacts,fis1, "vf_vmme_template_WithUpdatedUUIDInConfig" +
+ ".yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithUpdatedUUIDInConfig.yml");
+ readPayload(inputArtifacts,fis2, "service_vmme_template_WithUpdatedUUIDInConfig.yml");
+ fis2.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ List<ToscaTemplate> toscas = new LinkedList();
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator2.properties");
+ loadConfig(ArtifactGenerationServiceTest.properties);
+
+ List<ToscaTemplate> toscas2 = new LinkedList();
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas2.add(getToscaModel(inputArtifact));
+ }
+ GenerationData data2 = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ Map<String, Model> outputArtifactMap2 = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2,
+ data2.getResultData());
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap2, toscas2);
+ testResourceTosca(toscas2.iterator(), outputArtifactMap2);
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ } finally {
+ System.setProperty(ARTIFACTGENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator.properties");
+ loadConfig(ArtifactGenerationServiceTest.properties);
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationVerifyMandatoryParameterServiceVersion() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+ readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, new HashMap<String, String>());
+ List<Artifact> resultData = data.getResultData();
+
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationVerifyServiceVersionFormat() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyServiceVersionFormat.yml");
+ readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyServiceVersionFormat.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyServiceVersionFormat.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyServiceVersionFormat.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1");
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ List<Artifact> resultData = data.getResultData();
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.1");
+ GenerationData data2 = obj.generateArtifact(inputArtifacts, generatorConfig,
+ additionalParams);
+ List<Artifact> resultData2 = data.getResultData();
+ Assert.assertEquals(data2.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
+ GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.0");
+ GenerationData data3 = obj.generateArtifact(inputArtifacts, generatorConfig,
+ additionalParams);
+ List<Artifact> resultData3 = data.getResultData();
+ Assert.assertEquals(data3.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data3.getErrorData().get("AAI").get(0),
+ GENERATOR_AAI_INVALID_SERVICE_VERSION);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ } finally{
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationVerifyServiceVersion() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyServiceVersion.yml");
+ readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyServiceVersion.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyServiceVersion.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyServiceVersion.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"9.0");
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ } finally{
+ additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+ }
+ }
+
+
+ @Test
+ public void testArtifactGenerationVerifyResourceVersionFormat() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyResourceVersionFormat.yml");
+ readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyResourceVersionFormat.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyResourceVersionFormat1.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyResourceVersionFormat1.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ fis2.close();
+
+ List<ToscaTemplate> toscas = new LinkedList();
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ List<Artifact> resultData = data.getResultData();
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+ String.format(GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+ toscas.get(0).getMetadata().get("UUID")));
+
+ inputArtifacts.remove(1);
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyResourceVersionFormat2.yml");
+ readPayload(inputArtifacts, fis3, "service_vmme_template_VerifyResourceVersionFormat2.yml");
+ fis3.close();
+ GenerationData data2 = obj.generateArtifact(inputArtifacts, generatorConfig,
+ additionalParams);
+ List<Artifact> resultData2 = data2.getResultData();
+ Assert.assertEquals(data2.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
+ String.format(GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+ toscas.get(0).getMetadata().get("UUID")));
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationVerifyMandatoryParameterResourceVersion() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+ readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+
+ fis1.close();
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+ readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ List<Artifact> resultData = data.getResultData();
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA,toscas.get(0).getMetadata().get("UUID")));
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationWithoutAllottedResource() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service-ServiceWithAllottedResourceIpmux-template.yml");
+ readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourceIpmux-template.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_IpMux.yml");
+ readPayload(inputArtifacts, fis2, "resource-AllottedResource-template_IpMux.yml");
+ fis2.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ List<Artifact> resultData = data.getResultData();
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+ (GENERATOR_AAI_PROVIDING_SERVICE_MISSING, toscas.get(1).getModelId()));
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceIpmuxWithGroups() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream
+ ("/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
+ readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_IpMux_WithGroups.yml");
+ readPayload(inputArtifacts, fis2, "resource-AllottedResource-template_IpMux_WithGroups.yml");
+ fis2.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceIpmuxSameInvariantDiffVersion() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
+ readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource1SameInvariant-IpMux-template.yml");
+ readPayload(inputArtifacts, fis2, "resource-AllottedResource1SameInvariant-IpMux-template.yml");
+ fis2.close();
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource2SameInvariant-IpMux-template.yml");
+ readPayload(inputArtifacts, fis3, "resource-AllottedResource2SameInvariant-IpMux-template.yml");
+ fis3.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceIpmuxSameInvariantSameVersion() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
+ readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
+ fis1.close();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
+ readPayload(inputArtifacts, fis2, "resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
+ fis2.close();
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(4, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceWithIpMuxAndTunnelXConn() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service-Allottedipmux-template.yml");
+ readPayload(inputArtifacts, fis2, "service-Allottedipmux-template.yml");
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/resource-IpMuxDemux-template.yml");
+ readPayload(inputArtifacts, fis1, "resource-IpMuxDemux-template.yml");
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-TunnelXconn-template.yml");
+ readPayload(inputArtifacts, fis3, "resource-TunnelXconn-template.yml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(5, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceWithOutProvidingServiceId() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service-SdWan-template_WithOutDepSerId.yml");
+ readPayload(inputArtifacts, fis2, "service-SdWan-template_WithOutDepSerId.yml");
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/resource-VhnfNonHeat-template_WithOutDepSerId.yml");
+ readPayload(inputArtifacts, fis1, "resource-VhnfNonHeat-template_WithOutDepSerId.yml");
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-TunnelXconn-template_WithOutDepSerId.yml");
+ readPayload(inputArtifacts, fis3, "resource-TunnelXconn-template_WithOutDepSerId.yml");
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-ServiceAdmin-template_WithOutDepSerId.yml");
+ readPayload(inputArtifacts, fis4, "resource-ServiceAdmin-template_WithOutDepSerId.yml");
+
+ InputStream fis5 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-IpMuxDemux-template_WithOutDepSerId.yml");
+ readPayload(inputArtifacts, fis5, "resource-IpMuxDemux-template_WithOutDepSerId.yml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ List<Artifact> resultData = data.getResultData();
+ Assert.assertEquals(data.getErrorData().isEmpty(),false);
+ Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+ (GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING, toscas.get(2).getModelId()));
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testArtifactGenerationAllottedResourceWithVF() {
+ try {
+ List<Artifact> inputArtifacts = new ArrayList();
+
+ InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service-SdWan-template_AllRes_VF.yml");
+ readPayload(inputArtifacts, fis2, "service-SdWan-template_AllRes_VF.yml");
+
+ InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/resource-VhnfNonHeat-template_AllRes_VF.yml");
+ readPayload(inputArtifacts, fis1, "resource-VhnfNonHeat-template_AllRes_VF.yml");
+
+ InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-TunnelXconn-template_AllRes_VF.yml");
+ readPayload(inputArtifacts, fis3, "resource-TunnelXconn-template_AllRes_VF.yml");
+
+ InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-ServiceAdmin-template_AllRes_VF.yml");
+ readPayload(inputArtifacts, fis4, "resource-ServiceAdmin-template_AllRes_VF.yml");
+
+ InputStream fis5 = SampleJUnitTest.class.getResourceAsStream
+ ("/resource-IpMuxDemux-template_AllRes_VF.yml");
+ readPayload(inputArtifacts, fis5, "resource-IpMuxDemux-template_AllRes_VF.yml");
+
+ ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+ List<ToscaTemplate> toscas = new LinkedList();
+
+ GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+ for (Artifact inputArtifact : inputArtifacts) {
+ toscas.add(getToscaModel(inputArtifact));
+ }
+ List<Artifact> resultData = data.getResultData();
+
+ Map<String, Model> outputArtifactMap = new HashMap<>();
+ ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+ ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+ testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+ Assert.assertEquals(7, data.getResultData().size());
+
+ removeMockArtifact(data.getResultData().iterator());
+
+ ArtifactGenerationServiceTest.validateName(data.getResultData());
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ public static void readPayload(List<Artifact> inputArtifacts,InputStream fis, String fileName) throws IOException {
+ byte[] payload = new byte[fis.available()];
+ fis.read(payload);
+ String checksum = GeneratorUtil.checkSum(payload);
+ byte[] encodedPayload = GeneratorUtil.encode(payload);
+ Artifact artifact = new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
+ artifact.setName(fileName);
+ artifact.setLabel(fileName);
+ artifact.setDescription(fileName);
+ //artifact.setVersion("1.0");
+ System.out.println(artifact.getName());
+ inputArtifacts.add(artifact);
+ }
+
+
+ /**
+ * Get the tosca java model from the tosca input artifact
+ *
+ * @param input Input tosca file and its metadata information as {@link Artifact} object
+ * @return Translated {@link ToscaTemplate tosca} object
+ * @throws SecurityException
+ */
+ public static ToscaTemplate getToscaModel(Artifact input) throws SecurityException {
+ byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
+ String checksum = GeneratorUtil.checkSum(decodedInput);
+ if (checksum.equals(input.getChecksum())) {
+ try {
+ return GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new IllegalArgumentException(String.format(GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()));
+ }
+ } else {
+ throw new SecurityException(String.format(GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH, input.getName()));
+ }
+ }
+
+ public static void removeMockArtifact(Iterator<Artifact> itr) {
+ while (itr.hasNext()){
+ if(itr.next().getType().equals("OTHER")){
+ itr.remove();
+ }
+ }
+ }
+
+ /*public static void testResourceTosca(Iterator<ToscaTemplate> itr, Map<String, Model> outputArtifactMap) {
+ while(itr.hasNext()){
+ ToscaTemplate toscaTemplate = itr.next();
+ if("VF".equals(toscaTemplate.getMetadata().get("type"))){
+ ArtifactGenerationServiceTest.testResourceTosca(outputArtifactMap, toscaTemplate);
+ }
+ }
+ }*/
+
+}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VF.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VF.yaml
new file mode 100644
index 0000000000..72bbca9a61
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VF.yaml
@@ -0,0 +1,92 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+ invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+ UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+ name: CMAUI VF
+ description: CMAUI MMSC VF
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 5.0.2.5.37
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputes:
+
+ node_templates:
+
+ vCMAUI: # vMMSC VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 0a258d08-2223-4a97-127c-11ab729d2bc3
+ UUID: 7214db52-1216-3aaf-1240-a236221ca404
+ version: 1.0
+ name: vMMC VFC
+ description:
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vCMAUI VFC
+ vfc_image_name: cmaui-5.0.2.5_v37.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: cmaui_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2
+ max_instances: 2
+
+ cmaui_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ policies:
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [ vMMSC ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFInvalidFormat.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFInvalidFormat.yaml
new file mode 100644
index 0000000000..72bbca9a61
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFInvalidFormat.yaml
@@ -0,0 +1,92 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+ invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+ UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+ name: CMAUI VF
+ description: CMAUI MMSC VF
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 5.0.2.5.37
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputes:
+
+ node_templates:
+
+ vCMAUI: # vMMSC VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 0a258d08-2223-4a97-127c-11ab729d2bc3
+ UUID: 7214db52-1216-3aaf-1240-a236221ca404
+ version: 1.0
+ name: vMMC VFC
+ description:
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vCMAUI VFC
+ vfc_image_name: cmaui-5.0.2.5_v37.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: cmaui_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2
+ max_instances: 2
+
+ cmaui_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ policies:
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [ vMMSC ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFMissingVFModule.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFMissingVFModule.yaml
new file mode 100644
index 0000000000..72bbca9a61
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/CMAUI_VFMissingVFModule.yaml
@@ -0,0 +1,92 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+ invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+ UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+ name: CMAUI VF
+ description: CMAUI MMSC VF
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 5.0.2.5.37
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputes:
+
+ node_templates:
+
+ vCMAUI: # vMMSC VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 0a258d08-2223-4a97-127c-11ab729d2bc3
+ UUID: 7214db52-1216-3aaf-1240-a236221ca404
+ version: 1.0
+ name: vMMC VFC
+ description:
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vCMAUI VFC
+ vfc_image_name: cmaui-5.0.2.5_v37.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: cmaui_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2
+ max_instances: 2
+
+ cmaui_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ policies:
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [ vMMSC ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VF.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VF.yaml
new file mode 100644
index 0000000000..2cbc0e9b86
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VF.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vECA_OAM: # vECA OAM VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+ UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+ version: 1.0
+ name: vECA_OAM VFC
+ description: ECA Management
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_OAM VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_oam_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_ARB: # vECA ARB VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+ UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+ version: 1.0
+ name: vECA_ARB VFC
+ description: ECA Arbitrator
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_ABR VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_arb_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 1 # set by service designer
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ eca_oam_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_oam_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_arb_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ eca_arb_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ groups:
+
+ # VF Modules
+
+ VFModuleECA_OAM_Base:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vECA::module-0
+ vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+ vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Base # set by service designer
+ vf_module_description: vECA Base VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vECA_OAM
+ - vECA_ARB
+ - eca_arb_internal
+ - eca_arb_oam
+ - eca_oam_oam
+ - eca_oam_internal
+ policies:
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [vECA_OAM, vECA_ARB ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFInvalidFormat.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFInvalidFormat.yaml
new file mode 100644
index 0000000000..5ef3805c30
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFInvalidFormat.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vECA_OAM: # vECA OAM VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+ UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+ version: 1.0
+ name: vECA_OAM VFC
+ description: ECA Management
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_OAM VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_oam_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_ARB: # vECA ARB VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+ UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+ version: 1.0
+ name: vECA_ARB VFC
+ description: ECA Arbitrator
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_ABR VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_arb_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 1 # set by service designer
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ eca_oam_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_oam_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_arb_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ eca_arb_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ groups:
+
+ # VF Modules
+
+ VFModuleECA_OAM_Base:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vECA::module-0
+ vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+ vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Base # set by service designer
+ vf_module_description: vECA Base VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vECA_OAM
+ - vECA_ARB
+ - eca_arb_internal
+ - eca_arb_oam
+ - eca_oam_oam
+ - eca_oam_internal
+ policies:
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [vECA_OAM, vECA_ARB ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFMissingVFModule.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFMissingVFModule.yaml
new file mode 100644
index 0000000000..2cbc0e9b86
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFMissingVFModule.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vECA_OAM: # vECA OAM VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+ UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+ version: 1.0
+ name: vECA_OAM VFC
+ description: ECA Management
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_OAM VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_oam_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_ARB: # vECA ARB VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+ UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+ version: 1.0
+ name: vECA_ARB VFC
+ description: ECA Arbitrator
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_ABR VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_arb_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 1 # set by service designer
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ eca_oam_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_oam_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_arb_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ eca_arb_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ groups:
+
+ # VF Modules
+
+ VFModuleECA_OAM_Base:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vECA::module-0
+ vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+ vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Base # set by service designer
+ vf_module_description: vECA Base VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vECA_OAM
+ - vECA_ARB
+ - eca_arb_internal
+ - eca_arb_oam
+ - eca_oam_oam
+ - eca_oam_internal
+ policies:
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [vECA_OAM, vECA_ARB ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFOrphan.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFOrphan.yaml
new file mode 100644
index 0000000000..d27bc63c35
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFOrphan.yaml
@@ -0,0 +1,211 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vECA_OAM: # vECA OAM VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+ UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+ version: 1.0
+ name: vECA_OAM VFC
+ description: ECA Management
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_OAM VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_oam_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_ARB: # vECA ARB VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+ UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+ version: 1.0
+ name: vECA_ARB VFC
+ description: ECA Arbitrator
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_ABR VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_arb_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 1 # set by service designer
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ eca_oam_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+ eca_oam_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+ eca_arb_oam:
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ eca_arb_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+ groups:
+
+ # VF Modules
+
+ VFModuleECA_OAM_Base:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vECA::module-0
+ vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+ vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Base # set by service designer
+ vf_module_description: vECA Base VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vECA_OAM
+ - vECA_ARB
+ - eca_arb_internal
+ - eca_arb_oam
+ - eca_oam_oam
+ - eca_oam_internal
+ policies:
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [vECA_OAM, vECA_ARB ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16.yaml
new file mode 100644
index 0000000000..62daf34eab
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16.yaml
@@ -0,0 +1,179 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMMSC_Service
+ description: vMMSC Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+ - vmmsc_vf.yml
+ - veca_oam_vf.yml
+ - cmaui_vf.yml
+ - service_network.yml #
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputes:
+ service_instance_name:
+ type: string
+ description: service instance name
+ service_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this service instance
+ vMMSC_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 5]
+ vECA_OAM_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 3]
+
+ node_templates:
+
+ vMMSC: # vMMSC VNF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 5
+ init_instances: # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+ # if no value provided use min_instances value.
+
+
+ vECA_OAM: # vECA VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Generic
+ resourceCategory: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 3
+
+
+
+ CMAUI: # CMAUI VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+ UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: CMAUI VF
+ description: CMAUI MMSC VF
+ type: VF
+ category: Generic
+ resourceCategory: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 5.0.2.5.37
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 1
+
+
+
+ # service level network
+
+ eca_internal_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16InvalidFormat.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16InvalidFormat.yaml
new file mode 100644
index 0000000000..1df7c177fe
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16InvalidFormat.yaml
@@ -0,0 +1,177 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMMSC_Service
+ description: vMMSC Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+ - vmmsc_vf.yml
+ - veca_oam_vf.yml
+ - cmaui_vf.yml
+ - service_network.yml #
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputes:
+ service_instance_name:
+ type: string
+ description: service instance name
+ service_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this service instance
+ vMMSC_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 5]
+ vECA_OAM_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 3]
+
+ node_templates:
+
+ vMMSC: # vMMSC VNF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 5
+ init_instances: # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+ # if no value provided use min_instances value.
+
+
+ vECA_OAM: # vECA VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 3
+
+
+
+ CMAUI: # CMAUI VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+ UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: CMAUI VF
+ description: CMAUI MMSC VF
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 5.0.2.5.37
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 1
+
+
+
+ # service level network
+
+ eca_internal_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16MissingVFModule.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16MissingVFModule.yaml
new file mode 100644
index 0000000000..31d95200ad
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16MissingVFModule.yaml
@@ -0,0 +1,177 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMMSC_Service
+ description: vMMSC Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+ - vmmsc_vf.yml
+ - veca_oam_vf.yml
+ - cmaui_vf.yml
+ - service_network.yml #
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputes:
+ service_instance_name:
+ type: string
+ description: service instance name
+ service_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this service instance
+ vMMSC_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 5]
+ vECA_OAM_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 3]
+
+ node_templates:
+
+ vMMSC: # vMMSC VNF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 5
+ init_instances: # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+ # if no value provided use min_instances value.
+
+
+ vECA_OAM: # vECA VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 3
+
+
+
+ CMAUI: # CMAUI VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+ UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: CMAUI VF
+ description: CMAUI MMSC VF
+ type: VF
+ category: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 5.0.2.5.37
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 1
+
+
+
+ # service level network
+
+ eca_internal_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VF.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VF.yaml
new file mode 100644
index 0000000000..7398e45e95
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VF.yaml
@@ -0,0 +1,976 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during
+ # instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vMMSC: # vMMSC VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vMMC VFC
+ description:
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vMMSC VFC
+ vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: mmsc_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 5
+ max_instances: 5
+ initial_instance:
+
+ vNEMS_FE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_FE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_fe_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 4 # set by service designer
+
+ vNEMS_BE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_BE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_be_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_TRX: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vECA_TRX VFC
+ description: Traffic handling
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_TRX VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_trx_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 20 # set by service designer
+ max_instances: 20 # set by service designer
+
+ vLB: # F5 VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: F5 LB VFC
+ description: Load Balancer
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: F5 Networks
+ vendorVersion: 11.5.3.163
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: F5 VFC
+ vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: bigip_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2
+ max_instances: 2
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ mmsc_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ nems_be_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_ha:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_eca_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_dmz_protected: # external CP to mobility DMZ protected network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_core_direct: # external CP to mobility core direct network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ # Intra-VF Virtual Links (Networks)
+
+ mmsc_traffic_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: MMSC traffic network
+ description: mmsc traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_imap_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS IMAP network
+ description: NEMS internal IMAP network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS internal traffic network
+ description: NEMS internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_web_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS web network
+ description: nems web nwtwork
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.255.0.0/17 # HEAT ENV
+ gateway_ip: 169.255.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS traffic network
+ description: NEMS traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA internal traffic network
+ description: ECA internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+ lb_ha_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: LB HA network
+ description: LB sync network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+
+ groups:
+
+ # Server Groups for applying placement policy
+ LbGroup:
+ type: tosca.groups.Root
+ members: [vLB]
+
+ mmscGroup:
+ type: tosca.groups.Root
+ members: [vMMSC]
+
+ nemas_feGroup:
+ type: tosca.groups.Root
+ members: [vNEMS_FE]
+
+ eca_trxGroup:
+ type: tosca.groups.Root
+ members: [vECA_TRX]
+
+ # VF Modules
+ VFModuleMMSC_Expansion:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMMSC::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_description: vMMSC growth unit # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vMMSC
+ - vNEMS_FE
+ - vNEMS_BE
+ - vECA_TRX
+ - vLB
+ - mmsc_oam
+ - mmsc_traffic
+ - nems_fe_web
+ - mmsc_traffic_net
+ - nems_imap_net
+ - nems_internal_net
+
+
+ policies:
+ # Autoscaling policy
+ - mmsc_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: bandwidth
+ threshold: 5 Gpbs
+
+ target: [ VFModuleMMSC_Expansion ]
+
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFInvalidFormat.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFInvalidFormat.yaml
new file mode 100644
index 0000000000..4e99ade400
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFInvalidFormat.yaml
@@ -0,0 +1,975 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vMMSC: # vMMSC VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vMMC VFC
+ description:
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vMMSC VFC
+ vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: mmsc_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 5
+ max_instances: 5
+ initial_instance:
+
+ vNEMS_FE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_FE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_fe_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 4 # set by service designer
+
+ vNEMS_BE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_BE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_be_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_TRX: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vECA_TRX VFC
+ description: Traffic handling
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_TRX VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_trx_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 20 # set by service designer
+ max_instances: 20 # set by service designer
+
+ vLB: # F5 VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: F5 LB VFC
+ description: Load Balancer
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: F5 Networks
+ vendorVersion: 11.5.3.163
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: F5 VFC
+ vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: bigip_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2
+ max_instances: 2
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ mmsc_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ nems_be_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_ha:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_eca_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_dmz_protected: # external CP to mobility DMZ protected network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_core_direct: # external CP to mobility core direct network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ # Intra-VF Virtual Links (Networks)
+
+ mmsc_traffic_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: MMSC traffic network
+ description: mmsc traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_imap_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS IMAP network
+ description: NEMS internal IMAP network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS internal traffic network
+ description: NEMS internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_web_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS web network
+ description: nems web nwtwork
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.255.0.0/17 # HEAT ENV
+ gateway_ip: 169.255.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS traffic network
+ description: NEMS traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA internal traffic network
+ description: ECA internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+ lb_ha_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: LB HA network
+ description: LB sync network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+
+ groups:
+
+ # Server Groups for applying placement policy
+ LbGroup:
+ type: tosca.groups.Root
+ members: [vLB]
+
+ mmscGroup:
+ type: tosca.groups.Root
+ members: [vMMSC]
+
+ nemas_feGroup:
+ type: tosca.groups.Root
+ members: [vNEMS_FE]
+
+ eca_trxGroup:
+ type: tosca.groups.Root
+ members: [vECA_TRX]
+
+ # VF Modules
+ VFModuleMMSC_Expansion:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMMSC::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_description: vMMSC growth unit # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vMMSC
+ - vNEMS_FE
+ - vNEMS_BE
+ - vECA_TRX
+ - vLB
+ - mmsc_oam
+ - mmsc_traffic
+ - nems_fe_web
+ - mmsc_traffic_net
+ - nems_imap_net
+ - nems_internal_net
+
+
+ policies:
+ # Autoscaling policy
+ - mmsc_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: bandwidth
+ threshold: 5 Gpbs
+
+ target: [ VFModuleMMSC_Expansion ]
+
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFMissingVFModule.yaml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFMissingVFModule.yaml
new file mode 100644
index 0000000000..4e99ade400
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/MMSC_VFMissingVFModule.yaml
@@ -0,0 +1,975 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vMMSC: # vMMSC VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vMMC VFC
+ description:
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vMMSC VFC
+ vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: mmsc_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 5
+ max_instances: 5
+ initial_instance:
+
+ vNEMS_FE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_FE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_fe_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 4 # set by service designer
+
+ vNEMS_BE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_BE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_be_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_TRX: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vECA_TRX VFC
+ description: Traffic handling
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_TRX VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_trx_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 20 # set by service designer
+ max_instances: 20 # set by service designer
+
+ vLB: # F5 VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: F5 LB VFC
+ description: Load Balancer
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: F5 Networks
+ vendorVersion: 11.5.3.163
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: F5 VFC
+ vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: bigip_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2
+ max_instances: 2
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ mmsc_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ nems_be_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_ha:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_eca_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_dmz_protected: # external CP to mobility DMZ protected network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_core_direct: # external CP to mobility core direct network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ # Intra-VF Virtual Links (Networks)
+
+ mmsc_traffic_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: MMSC traffic network
+ description: mmsc traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_imap_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS IMAP network
+ description: NEMS internal IMAP network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS internal traffic network
+ description: NEMS internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_web_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS web network
+ description: nems web nwtwork
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.255.0.0/17 # HEAT ENV
+ gateway_ip: 169.255.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS traffic network
+ description: NEMS traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA internal traffic network
+ description: ECA internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+ lb_ha_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: LB HA network
+ description: LB sync network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+
+ groups:
+
+ # Server Groups for applying placement policy
+ LbGroup:
+ type: tosca.groups.Root
+ members: [vLB]
+
+ mmscGroup:
+ type: tosca.groups.Root
+ members: [vMMSC]
+
+ nemas_feGroup:
+ type: tosca.groups.Root
+ members: [vNEMS_FE]
+
+ eca_trxGroup:
+ type: tosca.groups.Root
+ members: [vECA_TRX]
+
+ # VF Modules
+ VFModuleMMSC_Expansion:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMMSC::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_description: vMMSC growth unit # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vMMSC
+ - vNEMS_FE
+ - vNEMS_BE
+ - vECA_TRX
+ - vLB
+ - mmsc_oam
+ - mmsc_traffic
+ - nems_fe_web
+ - mmsc_traffic_net
+ - nems_imap_net
+ - nems_internal_net
+
+
+ policies:
+ # Autoscaling policy
+ - mmsc_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: bandwidth
+ threshold: 5 Gpbs
+
+ target: [ VFModuleMMSC_Expansion ]
+
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource0-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource0-template.yml
new file mode 100644
index 0000000000..49666f9bae
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource0-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+ UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+ name: resource_0
+ description: description
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ resourceVendor: vendor name
+ resourceVendorRelease: vendor release
+topology_template:
+ substitution_mapping:
+ node_type: org.openecomp.resource.vf.Resource0
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource1-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource1-template.yml
new file mode 100644
index 0000000000..3152660125
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Resource1-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: af39c951-3a61-4324-9a1f-892a26f713fb
+ UUID: 438eecb8-bdf0-4356-b8f4-80dfcaafecbf
+ name: resource_1
+ description: description
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ resourceVendor: vendor name
+ resourceVendorRelease: vendor release
+topology_template:
+ substitution_mapping:
+ node_type: org.openecomp.resource.vf.Resource1
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-template.yml
new file mode 100644
index 0000000000..0ddab00927
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-template.yml
@@ -0,0 +1,28 @@
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: ba65d050-f98a-4950-ab2f-3b6557d9476f
+ UUID: b79f52b8-57ab-43a0-a6d8-9db685f08073
+ name: service_0
+ description: desc
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+ resource_0:
+ file: Resource0-template.yml
+ resource_1:
+ file: Resource1-template.yml
+topology_template:
+ substitution_mapping:
+ node_type: org.openecomp.service.Service0
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-templateMoreThan256.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-templateMoreThan256.yml
new file mode 100644
index 0000000000..0411603163
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/Service0-templateMoreThan256.yml
@@ -0,0 +1,28 @@
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: ba65d050-f98a-4950-ab2f-3b6557d9476f
+ UUID: b79f52b8-57ab-43a0-a6d8-9db685f08073
+ name: service_00bbbbbbbbbbbbbbbbbbbbbbbb_______________________bbbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ description: desc0123bbbbbbbbbbbbb______________bbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbb_____________bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+ resource_0:
+ file: Resource0-template.yml
+ resource_1:
+ file: Resource1-template.yml
+topology_template:
+ substitution_mapping:
+ node_type: org.openecomp.service.Service0
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ServiceWithNodetemplate.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ServiceWithNodetemplate.yml
new file mode 100644
index 0000000000..b28bda56f9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/ServiceWithNodetemplate.yml
@@ -0,0 +1,51 @@
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: ba65d050-f98a-4950-ab2f-3b6557d9476f
+ UUID: b79f52b8-57ab-43a0-a6d8-9db685f08073
+ name: service_0
+ description: desc
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+ resource_0:
+ file: Resource0-template.yml
+ resource_1:
+ file: Resource1-template.yml
+topology_template:
+ node_templates:
+ resource_1 2:
+ type: org.openecomp.resource.vf.Resource1
+ metadata:
+ invariantUUID: af39c951-3a61-4324-9a1f-892a26f713fb
+ UUID: 438eecb8-bdf0-4356-b8f4-80dfcaafecbf
+ version: 1.0
+ name: resource_1
+ description: description
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ resource_0 1:
+ type: org.openecomp.resource.vf.Resource0
+ metadata:
+ invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+ UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+ version: 1.0
+ name: resource_0
+ description: description
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ substitution_mapping:
+ node_type: org.openecomp.service.Service0
+ # _______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/service_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/service_vmme_template_1.yml
new file mode 100644
index 0000000000..b3b7889453
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/service_vmme_template_1.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ serviceInvariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ serviceUUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ serviceVersion: 1.0
+ serviceName: vMME_Service
+ serviceDescription: vMME_Service
+ serviceCategory: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ resourceInvariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ resourceUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceversion: 1.0
+ resourceName: vMME_VF
+ resourceDescription: vMME_VF
+ resourceType: VF
+ resourceCategry: Application L4+
+ resourceSubcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ resourceInvariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ resourceUUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ resourceversion: 1.0
+ resourceName: GTPNet
+ resourceDescription: GTP External Network
+ resourceType: VL
+ resourceCategry: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ resourceInvariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ resourceUUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ resourceversion: 1.0
+ resourceName: SCTPANet
+ resourceDescription: SCTP A External Network
+ resourceType: VL
+ resourceCategry: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ resourceInvariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ resourceUUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ resourceversion: 1.0
+ resourceName: SCTPBNet
+ resourceDescription: SCTP B External Network
+ resourceType: VL
+ resourceCategry: VL
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/vf_vmme_template_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/vf_vmme_template_1.yml
new file mode 100644
index 0000000000..2a169e69f8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/aai/vf_vmme_template_1.yml
@@ -0,0 +1,1219 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ resourceInvariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ resourceUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceversion: 1.0
+ resourceName: vMME_VF
+ resourceDescription: vMME_VF
+ resourceType: VF
+ resourceCategry: Application L4+
+ resourceSubcategory: Firewall
+ resourceVendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceversion: 1.0
+ resourceName: Nova Server
+ resourceDescription: VFC based on OpenStack Nova Server
+ resourceType: VFC
+ resourceCategry: Generic
+ resourceSubcategry: Infrastructure
+ resourceVendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ resourceInvariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ resourceUUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceversion: 1.0
+ resourceName: Network
+ resourceDescription: Internal Network
+ resourceType: VL
+ resourceCategry: Generic
+ resourceSubcategory: Infrastructure
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ resourceInvariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ resourceUUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceversion: 1.0
+ resourceName: Network
+ resourceDescription: Internal Network
+ resourceType: VL
+ resourceCategry: Generic
+ resourceSubcategory: Infrastructure
+ resourceVendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ resourceInvariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ resourceUUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceversion: 2.0
+ resourceName: Mobility OAM Network
+ resourceDescription: Mobility OAM Network
+ resourceType: VL
+ resourceCategry: VL
+ resourceVendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux.yml
new file mode 100644
index 0000000000..030fa24603
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource1
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource1
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ max_instances: 1
+ min_instances: 1
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux_WithGroups.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux_WithGroups.yml
new file mode 100644
index 0000000000..282750351c
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux_WithGroups.yml
@@ -0,0 +1,283 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000000..c80e701913
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDupL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDupL3Network.yml
new file mode 100644
index 0000000000..c80e701913
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDupL3Network.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3Network.yml
new file mode 100644
index 0000000000..c80e701913
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3Network.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3NetworkInVFMod.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3NetworkInVFMod.yml
new file mode 100644
index 0000000000..c80e701913
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3NetworkInVFMod.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource1SameInvariant-IpMux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource1SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000000..76ae589dd9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource1SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b678aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource2SameInvariant-IpMux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource2SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000000..afd085df89
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource2SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
new file mode 100644
index 0000000000..2852d03568
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+ file: resource-AllotedResource-template.yml
+topology_template:
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+ UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+ customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+ version: '1.0'
+ name: Alloted resource
+ description: This is a VFC- Allotted resource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ role: name
+ ecomp_naming:
+ naming_policy: test
+ ecomp_generated_naming: false
+ supplemental_data:
+ Key1: key1
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+ providing_service_name: vVIGaaS
+ ecomp_homing:
+ instance_node_target: Test
+ homing_policy: Test
+ supplemental_data:
+ Key: key
+ ecomp_selected_instance_node_target: false
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.AllottedResource
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000000..e474f9a637
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+ name: ExtVL2
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: OPENECOMP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+node_types:
+ org.openecomp.resource.vl.extVL:
+ derived_from: tosca.nodes.Root
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ properties:
+ physical_network:
+ type: org.openecomp.datatypes.network.PhysicalNetwork
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ vl_artifacts:
+ type: map
+ description: List of artifacts associated with the VL
+ entry_schema:
+ type: org.openecomp.datatypes.Artifact
+ network_scope:
+ type: string
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000000..aa32d4ae01
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ name: ExtVL1
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: OPENECOMP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+node_types:
+ org.openecomp.resource.vl.extVL:
+ derived_from: tosca.nodes.Root
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ properties:
+ physical_network:
+ type: org.openecomp.datatypes.network.PhysicalNetwork
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ vl_artifacts:
+ type: map
+ description: List of artifacts associated with the VL
+ entry_schema:
+ type: org.openecomp.datatypes.Artifact
+ network_scope:
+ type: string
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDupL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDupL3Network.yml
new file mode 100644
index 0000000000..512d62bdaa
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDupL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ name: ExtVL
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: OPENECOMP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+node_types:
+ org.openecomp.resource.vl.extVL:
+ derived_from: tosca.nodes.Root
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ properties:
+ physical_network:
+ type: org.openecomp.datatypes.network.PhysicalNetwork
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ vl_artifacts:
+ type: map
+ description: List of artifacts associated with the VL
+ entry_schema:
+ type: org.openecomp.datatypes.Artifact
+ network_scope:
+ type: string
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithL3Network.yml
new file mode 100644
index 0000000000..512d62bdaa
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ name: ExtVL
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: OPENECOMP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+node_types:
+ org.openecomp.resource.vl.extVL:
+ derived_from: tosca.nodes.Root
+ description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+ properties:
+ physical_network:
+ type: org.openecomp.datatypes.network.PhysicalNetwork
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ vl_artifacts:
+ type: map
+ description: List of artifacts associated with the VL
+ entry_schema:
+ type: org.openecomp.datatypes.Artifact
+ network_scope:
+ type: string
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template.yml
new file mode 100644
index 0000000000..5b4ffd971e
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+ UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+ name: IP_Mux_Demux
+ description: nbvnbb
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: stella
+ resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+ file: resource-Newallotted-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+ UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+ customizationUUID: e7a3e375-9bec-4552-88d2-26cb5dcf580d
+ version: '1.0'
+ name: newAllotted
+ description: vcxvcx
+ type: VFC
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: 2bec5c69-b64e-4ffe-b74a-62f14d255d46
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 8ca1e477-77ec-47ed-a498-303fd0de9080
+ providing_service_name: ServiceAllMichael1801
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.IpMuxDemux
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_AllRes_VF.yml
new file mode 100644
index 0000000000..d8885bb84b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ providing_service_name: vVIGaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.IpMuxDemux
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..2e06cf467b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_WithOutDepSerId.yml
@@ -0,0 +1,80 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid:
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid:
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.IpMuxDemux
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_AllRes_VF.yml
new file mode 100644
index 0000000000..549c18b55b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Service admin
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ providing_service_name: HNPortalaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.ServiceAdmin
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..c8a641d1ac
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid:
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid:
+ providing_service_name: HNPortalaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.ServiceAdmin
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template.yml
new file mode 100644
index 0000000000..434757d30e
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+ UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+ name: Tunnel_XConn
+ description: stella
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ resourceVendor: stella
+ resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+ file: resource-Newallotted-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ max_instances:
+ type: string
+ min_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ allotedresource1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+ UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+ customizationUUID: a92f5f2e-fe08-4711-84f6-2e64608aca13
+ version: '1.0'
+ name: newAllotted
+ description: vcxvcx
+ type: VFC
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: c964ef13-9d61-4d1b-a1a6-7060f3d7ddb4
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 3d6f84f5-84fd-441a-8fd8-401f71196712
+ providing_service_name: ServiceSprint38stella
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.TunnelXconn
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_AllRes_VF.yml
new file mode 100644
index 0000000000..1eb97a0976
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ min_instances:
+ type: string
+ max_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+ providing_service_name: vVIGaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.TunnelXconn
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..eb248d1d65
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+ file: resource-Allotedresource-template.yml
+topology_template:
+ inputs:
+ role:
+ type: string
+ ecomp_naming:
+ type: string
+ min_instances:
+ type: string
+ max_instances:
+ type: string
+ ecomp_homing:
+ type: string
+ node_templates:
+ Alloted resource 1:
+ type: org.openecomp.resource.vfc.AllottedResource
+ metadata:
+ invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+ UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+ customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+ version: '1.0'
+ name: Allotedresource
+ description: Allotedresource
+ type: VFC
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ properties:
+ ecomp_naming:
+ naming_policy:
+ get input: ecomp_naming
+ providing_service_invariant_uuid:
+ min_instances: 1
+ max_instances: 1
+ providing_service_uuid:
+ providing_service_name: vVIGaaS
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.TunnelXconn
+ capabilities:
+ Alloted resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Alloted resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Alloted resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_AllRes_VF.yml
new file mode 100644
index 0000000000..8ec1c192ee
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_AllRes_VF.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+topology_template:
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..8ec1c192ee
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_WithOutDepSerId.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: '1'
+ resourceVendorRelease: '1'
+topology_template:
+ substitution_mappings:
+ node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-Allottedipmux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-Allottedipmux-template.yml
new file mode 100644
index 0000000000..449e0925d5
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-Allottedipmux-template.yml
@@ -0,0 +1,126 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 9c5b8e77-6ae1-4817-994f-a14a03635868
+ UUID: 2722acbc-a8cb-4d73-ab14-9b2d79dc2131
+ name: AllottedIPMux
+ description: cbvbv
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Tunnel_XConn:
+ file: resource-TunnelXconn-template.yml
+- IP_Mux_Demux:
+ file: resource-IpMuxDemux-template.yml
+topology_template:
+ node_templates:
+ Tunnel_XConn 3:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+ UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+ customizationUUID: ae051f74-0d64-40f8-877b-791330cd7801
+ version: '1.0'
+ name: Tunnel_XConn
+ description: stella
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ IP_Mux_Demux 2:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+ UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+ customizationUUID: 8cb6b8f7-a9bc-4745-92bd-f815f68fa6bc
+ version: '1.0'
+ name: IP_Mux_Demux
+ description: nbvnbb
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ IP_Mux_Demux 1:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+ UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+ customizationUUID: 7801f43f-f3f6-453f-89ea-4c182c569ad6
+ version: '1.0'
+ name: IP_Mux_Demux
+ description: nbvnbb
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.Allottedipmux
+ capabilities:
+ IP_Mux_Demux 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Tunnel_XConn 3.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ IP_Mux_Demux 2.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Tunnel_XConn 3.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 2.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 2.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ IP_Mux_Demux 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Tunnel_XConn 3.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_AllRes_VF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_AllRes_VF.yml
new file mode 100644
index 0000000000..bc3ab6dabb
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_AllRes_VF.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+ UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+ name: SD-WAN
+ description: SD-WAN
+ type: Service
+ category: Network L4+
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- service_admin:
+ file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+ file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+ file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+ file: resource-IpMuxDemux-template.yml
+topology_template:
+ node_templates:
+ Sec_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ Pri_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ Pri_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ Pri_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ Sec_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Tunnel XConnect
+ vHNF non Heat 22:
+ type: org.openecomp.resource.vf.VhnfNonHeat
+ metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+ version: '0.1'
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ Sec_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Service admin
+ substitution_mappings:
+ node_type: org.openecomp.service.SdWan
+ capabilities:
+ Sec_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Pri_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_WithOutDepSerId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_WithOutDepSerId.yml
new file mode 100644
index 0000000000..51d8c2d8ba
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_WithOutDepSerId.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+ UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+ name: SD-WAN
+ description: SD-WAN
+ type: Service
+ category: Network L4+
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- service_admin:
+ file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+ file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+ file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+ file: resource-IpMuxDemux-template.yml
+topology_template:
+ node_templates:
+ Sec_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Pri_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Pri_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Pri_IP_Mux_Demux:
+ type: org.openecomp.resource.vf.IpMuxDemux
+ metadata:
+ invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+ UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+ customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+ version: '0.1'
+ name: IP_Mux_Demux
+ description: IP_Mux_Demux
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ Sec_Tunnel_XConn:
+ type: org.openecomp.resource.vf.TunnelXconn
+ metadata:
+ invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+ UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+ customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+ version: '0.1'
+ name: Tunnel_XConn
+ description: Tunnel_XConn
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ vHNF non Heat 22:
+ type: org.openecomp.resource.vf.VhnfNonHeat
+ metadata:
+ invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+ UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+ customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+ version: '0.1'
+ name: vHNF non Heat
+ description: vHNF non Heat
+ type: VF
+ category: Generic
+ subcategory: Network Elements
+ Sec_service_admin:
+ type: org.openecomp.resource.vf.ServiceAdmin
+ metadata:
+ invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+ UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+ customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+ version: '0.1'
+ name: service_admin
+ description: service_admin
+ type: VF
+ category: Allotted Resource
+ subcategory: Allotted Resource
+ substitution_mappings:
+ node_type: org.openecomp.service.SdWan
+ capabilities:
+ Sec_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_service_admin.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_IP_Mux_Demux.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Pri_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ Sec_Tunnel_XConn.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Pri_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_service_admin.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_service_admin.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Sec_Tunnel_XConn.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Pri_IP_Mux_Demux.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template.yml
new file mode 100644
index 0000000000..1fba2e727f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
new file mode 100644
index 0000000000..1fba2e727f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
new file mode 100644
index 0000000000..efd2dea67a
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ allottedresource2:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.3'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
new file mode 100644
index 0000000000..08c5329212
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+ UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+ name: Service with allotted resource IPMUX
+ description: safa
+ type: Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+imports:
+- Allotted Resource:
+ file: resource-AllottedResource-template.yml
+topology_template:
+ node_templates:
+ allottedresource1:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ allottedresource2:
+ type: org.openecomp.resource.vf.AllottedResource
+ metadata:
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+ version: '0.2'
+ name: Allotted Resource
+ description: This is a VF - Allotted resource
+ type: VF
+ category: Allotted Resource
+ subcategory: IP Mux Demux
+ groups: {
+ }
+ substitution_mappings:
+ node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+ capabilities:
+ Allotted Resource 1.feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ requirements:
+ Allotted Resource 1.dependency:
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ Allotted Resource 1.service_dependency:
+ occurrences:
+ - 1
+ - 1
+ capability: org.openecomp.capabilities.AllottedResource
+ node: tosca.services.Root
+ relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #| AT&T Proprietary (Restricted) |
+ #| Only for use by authorized individuals or any above-designated team(s) |
+ #| within the AT&T companies and not for general distribution |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVF.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVF.yml
new file mode 100644
index 0000000000..6a5af0d56b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVF.yml
@@ -0,0 +1,112 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ mme1: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7fef
+ version: 2.0
+ name: vMME_VF1
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
new file mode 100644
index 0000000000..11ab6e1343
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFModUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFModUUID.yml
new file mode 100644
index 0000000000..e75f7ab1a8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFModUUID.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ description: vMME_Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFUUID.yml
new file mode 100644
index 0000000000..f92b048f5e
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFUUID.yml
@@ -0,0 +1,229 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ description: vMME_Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ mme1: # vMME VNF1
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF2
+ description: vMME_VF2
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFInServiceTOSCA.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFInServiceTOSCA.yml
new file mode 100644
index 0000000000..d112817569
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFInServiceTOSCA.yml
@@ -0,0 +1,158 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: abc.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFTemplate.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFTemplate.yml
new file mode 100644
index 0000000000..81982bdf50
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFTemplate.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ description: vMME_Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: abc.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulComp.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulComp.yml
new file mode 100644
index 0000000000..dd0a8eba3d
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulComp.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ description: vMME_Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulVFVFMod.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulVFVFMod.yml
new file mode 100644
index 0000000000..353a233d74
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulVFVFMod.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ version: 1.0
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: abc.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ resourceSubcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: abc.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NoSystemPropConfigured.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NoSystemPropConfigured.yml
new file mode 100644
index 0000000000..11ab6e1343
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NoSystemPropConfigured.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NullFields.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NullFields.yml
new file mode 100644
index 0000000000..2ca342cd46
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NullFields.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID:
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_Orphan.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_Orphan.yml
new file mode 100644
index 0000000000..6ca0957b8f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_Orphan.yml
@@ -0,0 +1,229 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ mme1: # vMME VNF1
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF2
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget1.yml
new file mode 100644
index 0000000000..d83e44be1c
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget1.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e266f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 8887da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8753c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b031ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ categry: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget2.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget2.yml
new file mode 100644
index 0000000000..989c623fd3
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget2.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ categry: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SingleVFVFMod.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SingleVFVFMod.yml
new file mode 100644
index 0000000000..0d586db1a8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SingleVFVFMod.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml
new file mode 100644
index 0000000000..2d92782ce4
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml
@@ -0,0 +1,178 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMMSC_Service
+ description: vMMSC Service
+ type: Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+ - vmmsc_vf.yml
+ - veca_oam_vf.yml
+ - cmaui_vf.yml
+ - service_network.yml #
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputes:
+ service_instance_name:
+ type: string
+ description: service instance name
+ service_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this service instance
+ vMMSC_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 5]
+ vECA_OAM_init_instances:
+ type: integer
+ description: The number of instances to instantiate
+ constraints:
+ - in_range: [1, 3]
+
+ node_templates:
+
+ vMMSC: # vMMSC VNF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 5
+ init_instances: # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+ # if no value provided use min_instances value.
+
+
+ vECA_OAM: # vECA VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+ UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: vECA VF
+ description: |
+ Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+ such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+ optimization offline. It intercepts the entire media and completes the optimizations before sending
+ the message to handsets.
+ type: VF
+ category: Generic
+ resourceCategory: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 3
+
+
+
+ CMAUI: # CMAUI VF
+ type: org.openecomp.resource.vf.Generic
+
+ metadata:
+ invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+ UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: CMAUI VF
+ description: CMAUI MMSC VF
+ type: VF
+ category: Generic
+ resourceCategory: Mobility
+ subCategory: MMSC
+ vendor: Nokia
+ vendorVersion: 5.0.2.5.37
+
+ properties:
+ vf_ecomp_name: true
+ vf_instance_name: # to be set by OPENECOMP during instantiation
+ vf_homing: true
+ vf_deployment_node: # to be set by OPENECOMP during instantiation
+ min_instances: 1
+ max_instances: 1
+
+
+
+ # service level network
+
+ eca_internal_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml
new file mode 100644
index 0000000000..0d586db1a8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat1.yml
new file mode 100644
index 0000000000..2e0d2d4bc7
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 9
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat2.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat2.yml
new file mode 100644
index 0000000000..9ab98f3c01
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat2.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 0.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersion.yml
new file mode 100644
index 0000000000..0d586db1a8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersion.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersionFormat.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersionFormat.yml
new file mode 100644
index 0000000000..0d586db1a8
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersionFormat.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithInvalidNo.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithInvalidNo.yml
new file mode 100644
index 0000000000..ae7d9cec4a
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithInvalidNo.yml
@@ -0,0 +1,102 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ version: 1.0
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithoutVNFC.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithoutVNFC.yml
new file mode 100644
index 0000000000..7789017a68
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithoutVNFC.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ name: vMME_Service
+ type: Service
+ description: vMME_Service
+ category: Mobility
+ ecompNaming: false
+ homing: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+
+ # Virtual Links (Networks)
+
+ gtp_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ version: 1.0
+ name: GTPNet
+ description: GTP External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: {get_input: gtp_net_network_name}
+ route_targets: {get_input: gtp_net_route_targets}
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: {get_input: gtp_net_cidr}
+ gateway_ip: {get_input: gtp_net_gateway_ip}
+ start_ip: {get_input: gtp_net_start_ip}
+ end_ip: {get_input: gtp_net_end_ip}
+
+ sctp_a_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ version: 1.0
+ name: SCTPANet
+ description: SCTP A External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+
+ sctp_b_net:
+ type: abc.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ version: 1.0
+ name: SCTPBNet
+ description: SCTP B External Network
+ type: VL
+ category: VL
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDiffVersionOfSameL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000000..e4139550fe
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,235 @@
+---
+description: "Service Template for deploing MME Service"
+imports:
+ -
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+ -
+ ExtVL:
+ file: resource-Extvl-template.yml
+ -
+ ? "Allotted Resource"
+ :
+ file: resource-AllottedResource-template.yml
+metadata:
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ category: Mobility
+ description: vMME_Service
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ name: vMME_Service
+ serviceEcompNaming: false
+ serviceHoming: false
+ type: Service
+topology_template:
+ groups:
+ external_networks:
+ members:
+ - sctp_a_net
+ - sctp_b_net
+ - gtp_net
+ properties:
+ availability_zone_count: 1
+ contrail_service_instance: true
+ type: org.openecomp.groups.externalNetworks
+ inputs:
+ gtp_net_cidr:
+ default: 107.243.37.64/27
+ description: "The GTP network cidr"
+ type: string
+ gtp_net_end_ip:
+ default: "107.243.37.94"
+ description: "The GTP network end ip"
+ type: string
+ gtp_net_gateway_ip:
+ default: "107.243.37.65"
+ description: "The GTP network gateway"
+ type: string
+ gtp_net_network_name:
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_route_targets:
+ default: "13979:105715"
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_start_ip:
+ default: "107.243.37.67"
+ description: "The GTP network start ip"
+ type: string
+ mme_vf_deployment_node:
+ description: "The target LCP node for deployment of this VF instance"
+ type: string
+ mme_vf_instance_name:
+ description: "VF instance name"
+ type: string
+ node_templates:
+ ? "Allotted Resource 2"
+ :
+ metadata:
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ category: "Allotted Resource"
+ description: "This is a VF - Allotted resource"
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ name: "Allotted Resource"
+ subcategory: "Allotted Resource"
+ type: VF
+ version: 1.0
+ type: org.openecomp.resource.vf.AllottedResource
+ ? "ExtVL 1"
+ :
+ metadata:
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ category: Generic
+ description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ name: ExtVL
+ subcategory: "Network Elements"
+ type: VL
+ version: 2.0
+ type: org.openecomp.resource.vl.extVL
+ ? "ExtVL 2"
+ :
+ metadata:
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+ category: Generic
+ description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ name: ExtVL
+ subcategory: "Network Elements"
+ type: VL
+ version: 2.0
+ type: org.openecomp.resource.vl.extVL
+ gtp_net:
+ metadata:
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ category: VL
+ description: "GTP External Network"
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ name: GTPNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name:
+ get_input: gtp_net_network_name
+ route_targets:
+ get_input: gtp_net_route_targets
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr:
+ get_input: gtp_net_cidr
+ end_ip:
+ get_input: gtp_net_end_ip
+ gateway_ip:
+ get_input: gtp_net_gateway_ip
+ ip_version: 4
+ start_ip:
+ get_input: gtp_net_start_ip
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ mme:
+ metadata:
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ resourceVendor: Ericsson
+ subcategory: Firewall
+ type: VF
+ version: 1.0
+ properties:
+ vf_deployment_node:
+ get_input: vf_deployment_node
+ vf_ecomp_name: false
+ vf_homing: false
+ vf_instance_name:
+ get_input: vf_instance_name
+ requirements:
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vf.vmme
+ sctp_a_net:
+ metadata:
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ category: VL
+ description: "SCTP A External Network"
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ name: SCTPANet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: "13979:105717"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.0/27
+ end_ip: "107.243.37.30"
+ gateway_ip: "107.243.37.1"
+ ip_version: 4
+ start_ip: "107.243.37.3"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ sctp_b_net:
+ metadata:
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ category: VL
+ description: "SCTP B External Network"
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ name: SCTPBNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: "13979:105719"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.32/24
+ end_ip: "107.243.37.62"
+ gateway_ip: "107.243.37.33"
+ ip_version: 4
+ start_ip: "107.243.37.35"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDupL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDupL3Network.yml
new file mode 100644
index 0000000000..c72aab10bc
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDupL3Network.yml
@@ -0,0 +1,235 @@
+---
+description: "Service Template for deploing MME Service"
+imports:
+ -
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+ -
+ ExtVL:
+ file: resource-Extvl-template.yml
+ -
+ ? "Allotted Resource"
+ :
+ file: resource-AllottedResource-template.yml
+metadata:
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ category: Mobility
+ description: vMME_Service
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ name: vMME_Service
+ serviceEcompNaming: false
+ serviceHoming: false
+ type: Service
+topology_template:
+ groups:
+ external_networks:
+ members:
+ - sctp_a_net
+ - sctp_b_net
+ - gtp_net
+ properties:
+ availability_zone_count: 1
+ contrail_service_instance: true
+ type: org.openecomp.groups.externalNetworks
+ inputs:
+ gtp_net_cidr:
+ default: 107.243.37.64/27
+ description: "The GTP network cidr"
+ type: string
+ gtp_net_end_ip:
+ default: "107.243.37.94"
+ description: "The GTP network end ip"
+ type: string
+ gtp_net_gateway_ip:
+ default: "107.243.37.65"
+ description: "The GTP network gateway"
+ type: string
+ gtp_net_network_name:
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_route_targets:
+ default: "13979:105715"
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_start_ip:
+ default: "107.243.37.67"
+ description: "The GTP network start ip"
+ type: string
+ mme_vf_deployment_node:
+ description: "The target LCP node for deployment of this VF instance"
+ type: string
+ mme_vf_instance_name:
+ description: "VF instance name"
+ type: string
+ node_templates:
+ ? "Allotted Resource 2"
+ :
+ metadata:
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ category: "Allotted Resource"
+ description: "This is a VF - Allotted resource"
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ name: "Allotted Resource"
+ subcategory: "Allotted Resource"
+ type: VF
+ version: 1.0
+ type: org.openecomp.resource.vf.AllottedResource
+ ? "ExtVL 1"
+ :
+ metadata:
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ category: Generic
+ description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ name: ExtVL
+ subcategory: "Network Elements"
+ type: VL
+ version: 2.0
+ type: org.openecomp.resource.vl.extVL
+ ? "ExtVL 2"
+ :
+ metadata:
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ category: Generic
+ description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ name: ExtVL
+ subcategory: "Network Elements"
+ type: VL
+ version: 2.0
+ type: org.openecomp.resource.vl.extVL
+ gtp_net:
+ metadata:
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ category: VL
+ description: "GTP External Network"
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ name: GTPNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name:
+ get_input: gtp_net_network_name
+ route_targets:
+ get_input: gtp_net_route_targets
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr:
+ get_input: gtp_net_cidr
+ end_ip:
+ get_input: gtp_net_end_ip
+ gateway_ip:
+ get_input: gtp_net_gateway_ip
+ ip_version: 4
+ start_ip:
+ get_input: gtp_net_start_ip
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ mme:
+ metadata:
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ resourceVendor: Ericsson
+ subcategory: Firewall
+ type: VF
+ version: 1.0
+ properties:
+ vf_deployment_node:
+ get_input: vf_deployment_node
+ vf_ecomp_name: false
+ vf_homing: false
+ vf_instance_name:
+ get_input: vf_instance_name
+ requirements:
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vf.vmme
+ sctp_a_net:
+ metadata:
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ category: VL
+ description: "SCTP A External Network"
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ name: SCTPANet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: "13979:105717"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.0/27
+ end_ip: "107.243.37.30"
+ gateway_ip: "107.243.37.1"
+ ip_version: 4
+ start_ip: "107.243.37.3"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ sctp_b_net:
+ metadata:
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ category: VL
+ description: "SCTP B External Network"
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ name: SCTPBNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: "13979:105719"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.32/24
+ end_ip: "107.243.37.62"
+ gateway_ip: "107.243.37.33"
+ ip_version: 4
+ start_ip: "107.243.37.35"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
new file mode 100644
index 0000000000..37bada7396
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b70
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
new file mode 100644
index 0000000000..15157e9076
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f00
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3Network.yml
new file mode 100644
index 0000000000..f262ef6e82
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3Network.yml
@@ -0,0 +1,223 @@
+---
+description: "Service Template for deploing MME Service"
+imports:
+ -
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+ -
+ ExtVL:
+ file: resource-Extvl-template.yml
+ -
+ ? "Allotted Resource"
+ :
+ file: resource-AllottedResource-template.yml
+metadata:
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ category: Mobility
+ description: vMME_Service
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ name: vMME_Service
+ serviceEcompNaming: false
+ serviceHoming: false
+ type: Service
+topology_template:
+ groups:
+ external_networks:
+ members:
+ - sctp_a_net
+ - sctp_b_net
+ - gtp_net
+ properties:
+ availability_zone_count: 1
+ contrail_service_instance: true
+ type: org.openecomp.groups.externalNetworks
+ inputs:
+ gtp_net_cidr:
+ default: 107.243.37.64/27
+ description: "The GTP network cidr"
+ type: string
+ gtp_net_end_ip:
+ default: "107.243.37.94"
+ description: "The GTP network end ip"
+ type: string
+ gtp_net_gateway_ip:
+ default: "107.243.37.65"
+ description: "The GTP network gateway"
+ type: string
+ gtp_net_network_name:
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_route_targets:
+ default: "13979:105715"
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_start_ip:
+ default: "107.243.37.67"
+ description: "The GTP network start ip"
+ type: string
+ mme_vf_deployment_node:
+ description: "The target LCP node for deployment of this VF instance"
+ type: string
+ mme_vf_instance_name:
+ description: "VF instance name"
+ type: string
+ node_templates:
+ ? "Allotted Resource 2"
+ :
+ metadata:
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ category: "Allotted Resource"
+ description: "This is a VF - Allotted resource"
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ name: "Allotted Resource"
+ subcategory: "Allotted Resource"
+ type: VF
+ version: 1.0
+ type: org.openecomp.resource.vf.AllottedResource
+ ? "ExtVL 1"
+ :
+ metadata:
+ UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+ category: Generic
+ description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+ invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+ name: ExtVL
+ subcategory: "Network Elements"
+ type: VL
+ version: 2.0
+ type: org.openecomp.resource.vl.extVL
+ gtp_net:
+ metadata:
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ category: VL
+ description: "GTP External Network"
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ name: GTPNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name:
+ get_input: gtp_net_network_name
+ route_targets:
+ get_input: gtp_net_route_targets
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr:
+ get_input: gtp_net_cidr
+ end_ip:
+ get_input: gtp_net_end_ip
+ gateway_ip:
+ get_input: gtp_net_gateway_ip
+ ip_version: 4
+ start_ip:
+ get_input: gtp_net_start_ip
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ mme:
+ metadata:
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ resourceVendor: Ericsson
+ subcategory: Firewall
+ type: VF
+ version: 1.0
+ properties:
+ vf_deployment_node:
+ get_input: vf_deployment_node
+ vf_ecomp_name: false
+ vf_homing: false
+ vf_instance_name:
+ get_input: vf_instance_name
+ requirements:
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vf.vmme
+ sctp_a_net:
+ metadata:
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ category: VL
+ description: "SCTP A External Network"
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ name: SCTPANet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: "13979:105717"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.0/27
+ end_ip: "107.243.37.30"
+ gateway_ip: "107.243.37.1"
+ ip_version: 4
+ start_ip: "107.243.37.3"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ sctp_b_net:
+ metadata:
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ category: VL
+ description: "SCTP B External Network"
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ name: SCTPBNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: "13979:105719"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.32/24
+ end_ip: "107.243.37.62"
+ gateway_ip: "107.243.37.33"
+ ip_version: 4
+ start_ip: "107.243.37.35"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3NetworkInVFMod.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3NetworkInVFMod.yml
new file mode 100644
index 0000000000..1853802b80
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3NetworkInVFMod.yml
@@ -0,0 +1,211 @@
+---
+description: "Service Template for deploing MME Service"
+imports:
+ -
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+ -
+ ExtVL:
+ file: resource-Extvl-template.yml
+ -
+ ? "Allotted Resource"
+ :
+ file: resource-AllottedResource-template.yml
+metadata:
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ category: Mobility
+ description: vMME_Service
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ name: vMME_Service
+ serviceEcompNaming: false
+ serviceHoming: false
+ type: Service
+topology_template:
+ groups:
+ external_networks:
+ members:
+ - sctp_a_net
+ - sctp_b_net
+ - gtp_net
+ properties:
+ availability_zone_count: 1
+ contrail_service_instance: true
+ type: org.openecomp.groups.externalNetworks
+ inputs:
+ gtp_net_cidr:
+ default: 107.243.37.64/27
+ description: "The GTP network cidr"
+ type: string
+ gtp_net_end_ip:
+ default: "107.243.37.94"
+ description: "The GTP network end ip"
+ type: string
+ gtp_net_gateway_ip:
+ default: "107.243.37.65"
+ description: "The GTP network gateway"
+ type: string
+ gtp_net_network_name:
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_route_targets:
+ default: "13979:105715"
+ description: "The GTP network route targets"
+ type: string
+ gtp_net_start_ip:
+ default: "107.243.37.67"
+ description: "The GTP network start ip"
+ type: string
+ mme_vf_deployment_node:
+ description: "The target LCP node for deployment of this VF instance"
+ type: string
+ mme_vf_instance_name:
+ description: "VF instance name"
+ type: string
+ node_templates:
+ ? "Allotted Resource 2"
+ :
+ metadata:
+ UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+ category: "Allotted Resource"
+ description: "This is a VF - Allotted resource"
+ invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+ name: "Allotted Resource"
+ subcategory: "Allotted Resource"
+ type: VF
+ version: 3.0
+ type: org.openecomp.resource.vf.AllottedResource
+ gtp_net:
+ metadata:
+ UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+ category: VL
+ description: "GTP External Network"
+ invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+ name: GTPNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name:
+ get_input: gtp_net_network_name
+ route_targets:
+ get_input: gtp_net_route_targets
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr:
+ get_input: gtp_net_cidr
+ end_ip:
+ get_input: gtp_net_end_ip
+ gateway_ip:
+ get_input: gtp_net_gateway_ip
+ ip_version: 4
+ start_ip:
+ get_input: gtp_net_start_ip
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ mme:
+ metadata:
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ resourceVendor: Ericsson
+ subcategory: Firewall
+ type: VF
+ version: 2.0
+ properties:
+ vf_deployment_node:
+ get_input: vf_deployment_node
+ vf_ecomp_name: false
+ vf_homing: false
+ vf_instance_name:
+ get_input: vf_instance_name
+ requirements:
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vf.vmme
+ sctp_a_net:
+ metadata:
+ UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+ category: VL
+ description: "SCTP A External Network"
+ invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+ name: SCTPANet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+ route_targets: "13979:105717"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.0/27
+ end_ip: "107.243.37.30"
+ gateway_ip: "107.243.37.1"
+ ip_version: 4
+ start_ip: "107.243.37.3"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+ sctp_b_net:
+ metadata:
+ UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+ category: VL
+ description: "SCTP B External Network"
+ invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+ name: SCTPBNet
+ resourceVendor: AT&T
+ type: VL
+ version: 1.0
+ properties:
+ contrail_virtual_network:
+ network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+ route_targets: "13979:105719"
+ flow_pattern: E-LAN
+ l3_access_parameters:
+ cidr: 107.243.37.32/24
+ end_ip: "107.243.37.62"
+ gateway_ip: "107.243.37.33"
+ ip_version: 4
+ start_ip: "107.243.37.35"
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_id: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithUpdatedUUIDInConfig.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithUpdatedUUIDInConfig.yml
new file mode 100644
index 0000000000..11ab6e1343
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithUpdatedUUIDInConfig.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+ invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+ UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+ type: Service
+ name: vMME_Service
+ description: vMME_Service
+ category: Mobility
+ serviceEcompNaming: false
+ serviceHoming: false
+
+imports:
+ vmmeToscaTemplate:
+ file: vf_vmme_template_1.yml
+
+topology_template:
+
+ inputs:
+ mme_vf_instance_name:
+ type: string
+ description: VF instance name
+ mme_vf_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this VF instance
+ gtp_net_network_name:
+ type: string
+ description: The GTP network route targets
+ default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+ gtp_net_route_targets:
+ type: string
+ description: The GTP network route targets
+ default: "13979:105715" # HEAT ENV
+ gtp_net_cidr:
+ type: string
+ description: The GTP network cidr
+ default: 107.243.37.64/27 # HEAT ENV
+ gtp_net_gateway_ip:
+ type: string
+ description: The GTP network gateway
+ default: 107.243.37.65 # HEAT ENV
+ gtp_net_start_ip:
+ type: string
+ description: The GTP network start ip
+ default: 107.243.37.67 # HEAT ENV
+ gtp_net_end_ip:
+ type: string
+ description: The GTP network end ip
+ default: 107.243.37.94 # HEAT ENV
+ # more inputs were removed for brevity
+
+ node_templates:
+
+ mme: # vMME VNF
+ type: org.openecomp.resource.vf.vmme
+
+ metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ version: 1.0
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ resourceVendor: Ericsson
+
+ properties:
+ vf_ecomp_name: false
+ vf_instance_name: { get_input: vf_instance_name }
+ vf_homing: false
+ vf_deployment_node: { get_input: vf_deployment_node }
+
+ requirements:
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_a_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Bindable
+ node: sctp_b_net
+ relationship: tosca.relationships.network.BindsTo
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Bindable
+ node: gtp_net
+ relationship: tosca.relationships.network.BindsTo
+
+ groups:
+
+ external_networks: # vMME_External_Network
+ type: org.openecomp.groups.externalNetworks
+ properties:
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+
+ members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
new file mode 100644
index 0000000000..b6076b177d
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
@@ -0,0 +1,1353 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+
+ vfmoduleVmmeModule-2:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-2"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7fef
+ vfModuleModelVersion: 2
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_1.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_1.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_2.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_2.yml
new file mode 100644
index 0000000000..1e67b68c8c
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_2.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF1
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7fef
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFModUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFModUUID.yml
new file mode 100644
index 0000000000..b8e80df3eb
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFModUUID.yml
@@ -0,0 +1,1242 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - oam_net
+ - vlc2_gtp_net
+ - VLC2
+
+ # VF Modules
+ vfmoduleVmmeModule-2:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-2
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - oam_net
+ - vlc2_gtp_net
+ - VLC2
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFUUID.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFUUID.yml
new file mode 100644
index 0000000000..ef95a248b4
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFUUID.yml
@@ -0,0 +1,1217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulComp.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulComp.yml
new file mode 100644
index 0000000000..62dee771dd
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulComp.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulVFVFMod.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulVFVFMod.yml
new file mode 100644
index 0000000000..cef49ec97d
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulVFVFMod.yml
@@ -0,0 +1,1251 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+ # VF Modules
+ vfmoduleVmmeModule-2:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-2
+ vfModuleModelInvariantUUID: ttf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: tt20ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NoSystemPropConfigured.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NoSystemPropConfigured.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NoSystemPropConfigured.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NullFields.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NullFields.yml
new file mode 100644
index 0000000000..25f6310896
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NullFields.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID:
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_Orphan.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_Orphan.yml
new file mode 100644
index 0000000000..652b487f60
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_Orphan.yml
@@ -0,0 +1,1236 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ subcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members: [FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2]
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets1.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets1.yml
new file mode 100644
index 0000000000..8edeb07ad5
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets1.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8753c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b031ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ categry: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ categry: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ categry: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets2.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets2.yml
new file mode 100644
index 0000000000..cba91b2b3e
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets2.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ categry: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ categry: Generic
+ subcategry: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ categry: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ categry: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ categry: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC2
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SingleVFVFMod.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SingleVFVFMod.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SingleVFVFMod.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml
new file mode 100644
index 0000000000..63fafc0fc1
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml
@@ -0,0 +1,975 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMMC VF
+ description: |
+ Delivers messages composed of text, images, and other media types (for example audio and video)
+ in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+ Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+ type: VF
+ category: Mobility
+ subCategory: MMC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+
+ # reference to template definitions
+imports:
+ - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+ # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+ # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+ # during the orchestration
+
+ inputs:
+
+ node_templates:
+
+ vMMSC: # vMMSC VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vMMC VFC
+ description:
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 6.0.2.14
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vMMSC VFC
+ vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: mmsc_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 5
+ max_instances: 5
+ initial_instance:
+
+ vNEMS_FE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_FE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_fe_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2 # set by service designer
+ max_instances: 4 # set by service designer
+
+ vNEMS_BE: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vNEMS_BE VFC
+ description: |
+ Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+ multimedia messages (MMs) through a web or WAP interface.
+ E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 2.1.2.44
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vNEMS_FE VFC
+ vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: nems_be_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 1 # set by service designer
+ max_instances: 2 # set by service designer
+
+ vECA_TRX: # vNEMS VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: vECA_TRX VFC
+ description: Traffic handling
+ type: VFC
+ category: Generic_VFC
+ subCategory: Generic_VFC
+ vendor: Nokia
+ vendorVersion: 13
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: vECA_TRX VFC
+ vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: eca_trx_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 20 # set by service designer
+ max_instances: 20 # set by service designer
+
+ vLB: # F5 VFC
+ type: org.openecomp.resource.vfc.Generic
+
+ metadata:
+ invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+ UUID: 2714db52-2116-a3af-1240-a236221ca004
+ version: 1.0
+ name: F5 LB VFC
+ description: Load Balancer
+ type: VFC
+ category: Generic
+ subCategory: Generic_VFC
+ vendor: F5 Networks
+ vendorVersion: 11.5.3.163
+
+ properties:
+ vfc_ecomp_name: true
+ vfc_instance_name: # to be set by OPENECOMP during instantiation
+ vfc_type_tag: # from HEAT ENV
+ vfc_description: F5 VFC
+ vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+ vfc_availability_zone:
+
+
+
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: bigip_flavor # from HEAT ENV
+ scaling:
+ properties:
+ min_instances: 2
+ max_instances: 2
+
+ # Internal VF Connection Points (VFCs connection points)
+
+ mmsc_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_fe_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+ nems_be_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ nems_be_imap:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_internal:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ eca_trx_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_ha:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_mmsc_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_nems_web:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_eca_traffic:
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_oam: # external OAM CP to mobility OAM network
+ type: org.openecomp.cp.OAM
+
+ metadata:
+ invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+ UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: OAM CP
+ description: OAM CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_Info:
+ ip_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_dmz_protected: # external CP to mobility DMZ protected network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ lb_core_direct: # external CP to mobility core direct network
+ type: org.openecomp.cp.CP
+
+ metadata:
+ invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+ UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+ version: 1.0 # set by ASDC
+ name: VFC CP
+ description: VFC CP
+ type: CP
+ category: CP
+ vendor: AT&T
+
+ properties:
+ address_info:
+ mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+ # Intra-VF Virtual Links (Networks)
+
+ mmsc_traffic_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: MMSC traffic network
+ description: mmsc traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_imap_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS IMAP network
+ description: NEMS internal IMAP network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS internal traffic network
+ description: NEMS internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_web_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS web network
+ description: nems web nwtwork
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.255.0.0/17 # HEAT ENV
+ gateway_ip: 169.255.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ nems_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: NEMS traffic network
+ description: NEMS traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105717
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.0/27 # HEAT ENV
+ gateway_ip: 107.243.37.1 # HEAT ENV
+ start_ip: 107.243.37.3 # HEAT ENV
+ end_ip: 107.243.37.30 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_traffic_net:
+ type: org.openecomp.resource.vl.VL
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA traffic network
+ description: ECA traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ network_name: # provided by OPENECOMP (SDNC)
+ route_targets: 13979:105719
+ network_id:
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 107.243.37.32/24 # HEAT ENV
+ gateway_ip: 107.243.37.33 # HEAT ENV
+ start_ip: 107.243.37.35 # HEAT ENV
+ end_ip: 107.243.37.62 # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+ eca_internal_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: ECA internal traffic network
+ description: ECA internal traffic network
+ type: VL
+ category: VL
+ vendor: Nokia
+
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+ lb_ha_net:
+ type: org.openecomp.resource.vl.VL
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: LB HA network
+ description: LB sync network
+ type: VL
+ category: VL
+ vendor: Nokia
+ properties:
+ network_type: Tenant_Layer_3
+ network_role: Intra-service
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input: network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ l3_access_parameters:
+ ip_version: 4
+ cidr: 169.253.0.0/17 # HEAT ENV
+ gateway_ip: 169.253.0.3 # HEAT ENV
+ dhcp_enabled: false # HEAT ENV
+ capabilities:
+ virtual_linkable:
+ valid_source_types: org.openecomp.resource.cp.CP
+
+
+ groups:
+
+ # Server Groups for applying placement policy
+ LbGroup:
+ type: tosca.groups.Root
+ members: [vLB]
+
+ mmscGroup:
+ type: tosca.groups.Root
+ members: [vMMSC]
+
+ nemas_feGroup:
+ type: tosca.groups.Root
+ members: [vNEMS_FE]
+
+ eca_trxGroup:
+ type: tosca.groups.Root
+ members: [vECA_TRX]
+
+ # VF Modules
+ VFModuleMMSC_Expansion:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMMSC::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_description: vMMSC growth unit # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 1 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - 099a6909-290f-4293-a347-736f11b8ff18
+ - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+ members:
+ - vMMSC
+ - vNEMS_FE
+ - vNEMS_BE
+ - vECA_TRX
+ - vLB
+ - mmsc_oam
+ - mmsc_traffic
+ - nems_fe_web
+ - mmsc_traffic_net
+ - nems_imap_net
+ - nems_internal_net
+
+
+ policies:
+ # Autoscaling policy
+ - mmsc_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: bandwidth
+ threshold: 5 Gpbs
+
+ target: [ VFModuleMMSC_Expansion ]
+
+ # Placement policy
+ - mmsc_anti_affinity_placement_policy:
+ type: org.openecomp.policy.Placement
+
+ properties:
+ conatiner_type: compute
+ policy: anti_affinity
+
+ target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ] \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyResourceVersionFormat.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyResourceVersionFormat.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyResourceVersionFormat.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersion.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersion.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersion.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersionFormat.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersionFormat.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersionFormat.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithInvalidNo.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithInvalidNo.yml
new file mode 100644
index 0000000000..9cb7291603
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithInvalidNo.yml
@@ -0,0 +1,1208 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - INVALID_MEMBER
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithoutVNFC.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithoutVNFC.yml
new file mode 100644
index 0000000000..b1784cf81f
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithoutVNFC.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME
+
+# metadata of the VF model
+metadata:
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ name: vMME_VF
+ description: vMME_VF
+ type: VF
+ category: Application L4+
+ subcategory: Firewall
+ vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+ inputs:
+ fsb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ fsb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB1_16ACP03.qcow2
+ fsb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ fsb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB002
+ fsb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ fsb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_FSB2_16ACP03.qcow2
+ fsb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ defualt: m4.xlarge4
+ ncb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB1_16ACP03.qcow2
+ ncb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ ncb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ ncb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ ncb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_NCB2_16ACP03.qcow2
+ ncb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB1_16ACP03.qcow2
+ gpb1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ gpb2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ gpb2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ gpb2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_GPB2_16ACP03.qcow2
+ gpb2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc1_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc1_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc1_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC1_16ACP03.qcow2
+ vlc1_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+ vlc2_vfc_instance_name: # from HEAT ENV
+ type: string
+ description: VFC instance name
+ default: ZRDM1MMEX36FSB001
+ vlc2_vfc_type_tag: # from HEAT ENV
+ type: string
+ description: VFC type tag
+ vlc2_vfc_image_name: # from HEAT ENV
+ type: string
+ description: VFC image name
+ default: MME_VLC2_16ACP03.qcow2
+ vlc2_vfc_flavor: # from HEAT ENV
+ type: string
+ description: VFC flavor
+ default: m4.xlarge4
+
+ fsb1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ fsb2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ fsb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ fsb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+
+ ncb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ ncb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ ncb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ gpb2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ gpb2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc1_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc1_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc1_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ vlc2_oam_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_gtp_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_a_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_sctp_b_ip_address: # from HEAT ENV
+ type: string
+ description: OAM ip address
+ default: 107.250.172.221
+ vlc2_internal1_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:80:37:0E:0B:12
+ vlc2_internal2_mac_address: # from HEAT_ENV
+ type: string
+ description: Internal connection point mac_address
+ default: 00:81:37:0E:0B:12
+ Internal1_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ Internal1_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ Internal2_net_dhcp:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_net_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ Internal2_net_gateway_ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ network_deployment_node:
+ type: string
+ description: The target LCP node for deployment of this Network instance
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+ node_templates:
+
+ # VFCs / VMs
+ FSB1: # VFC1 / VM1
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb1_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb1_vfc_type_tag}
+ vfc_description: FSB1
+ vfc_image_name: {get_input: fsb1_vfc_image_name}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+
+
+ FSB2: # VFC2 / VM2
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: fsb2_vfc_instance_name}
+ vfc_type_tag: {get_input: fsb2_vfc_type_tag}
+ vfc_description: FSB2
+ vfc_image_name: {get_input: fsb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: fsb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB1: # VFC3 / MV3
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb1_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb1_vfc_type_tag}
+ vfc_description: NCB1
+ vfc_image_name: {get_input: ncb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ NCB2: # VFC4 / VM4
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: ncb2_vfc_instance_name}
+ vfc_type_tag: {get_input: ncb2_vfc_type_tag}
+ vfc_description: NCB2
+ vfc_image_name: {get_input: ncb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: ncb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB1: # VFC5 / VM5
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb1_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb1_vfc_type_tag}
+ vfc_description: GPB1
+ vfc_image_name: {get_input: gpb1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ GPB2: # VFC6 / VM6
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: gpb2_vfc_instance_name}
+ vfc_type_tag: {get_input: gpb2_vfc_type_tag}
+ vfc_description: GPB2
+ vfc_image_name: {get_input: gpb2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: gpb2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC1: # VFC7 / VM7
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc1_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc1_vfc_type_tag}
+ vfc_description: VLC1
+ vfc_image_name: {get_input: vlc1_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc1_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+ VLC2: # VFC8 / VM8
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+ metadata:
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ version: 1.0
+ name: Nova Server
+ description: VFC based on OpenStack Nova Server
+ type: VFC
+ category: Generic
+ resourceSubcategory: Infrastructure
+ vendor: Ericsson
+ properties:
+ vfc_ecomp_name: false
+ vfc_instance_name: {get_input: vlc2_vfc_instance_name}
+ vfc_type_tag: {get_input: vlc2_vfc_type_tag}
+ vfc_description: VLC2
+ vfc_image_name: {get_input: vlc2_vfc_image_name}
+
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ capabilities:
+ nfv_compute:
+ properties:
+ vfc_flavor: {get_input: vlc2_vfc_flavor}
+ scaling_capability:
+ properties:
+ min_instances: 1
+ max_instances: 1
+ init_instances: 1
+ monitoring_capability:
+ properties:
+ name: cpu_load
+
+
+ # Connection Points
+
+ fsb1_oam: # VFC1 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal1: # VFC1 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb1_internal2: # VFC1 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_oam: # VFC2 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: fsb2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal1: # VFC2 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ fsb2_internal2: # VFC2 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: fsb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal1: # VFC3 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb1_internal2: # VFC3 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal1: # VFC4 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ ncb2_internal2: # VFC4 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: ncb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal1: # VFC5 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb1_internal2: # VFC5 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal1: # VFC6 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ gpb2_internal2: # VFC6 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: gpb2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_oam: # VFC7 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_internal2: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc1_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_a: # VFC7 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_sctp_b: # VFC7 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc1_gtp_net: # VFC7 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc1_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_oam: # VFC8 OAM CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_oam_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal1: # VFC8 Internal1 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal1_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_internal2: # VFC8 Internal2 CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_info:
+ mac_address: {get_input: vlc2_internal2_mac_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ - link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_a: # VFC8 eca_sctp_a CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_a_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_a_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_sctp_b: # VFC8 eca_sctp_b CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_sctp_b_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: sctp_b_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ vlc2_gtp_net: # VFC8 gtp CP
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ address_Info:
+ ip_address: {get_input: vlc2_gtp_ip_address}
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ # - link:
+ # capability: tosca.capabilities.network.Bindable
+ # node: gtp_net
+ # relationship: tosca.relationships.network.BindsTo
+
+ # Virtual Links (Networks)
+
+ Internal1_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+ cidr: {get_input: Internal1_net_cidr}
+ gateway_ip: {get_input: Internal1_net_gateway_ip}
+
+ Internal2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ metadata:
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ version: 1.0
+ name: Network
+ description: Internal Network
+ type: VL
+ category: Generic
+ subcategory: Infrastructure
+ vendor: AT&T
+ properties:
+ network_type: Tenant_Layer_3
+ network_role:
+ network_technology: Contrail
+ network_ecomp_name: false
+ network_homing: false
+ network_deployment_node: { get_input : network_deployment_node }
+ contrail_virtual_network:
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_forwarding_mode: l2
+ vn_shared: false
+ vn_external: false
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+ ip_version: 4
+ enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+ cidr: {get_input: Internal2_net_cidr}
+ gateway_ip: {get_input: Internal2_net_gateway_ip}
+
+
+ oam_net:
+ type: org.openecomp.resource.vl.OAM
+
+ metadata:
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ version: 2.0
+ name: Mobility OAM Network
+ description: Mobility OAM Network
+ type: VL
+ category: VL
+ vendor: AT&T
+
+ properties:
+ network_type: vIPR_ATM_OAM
+ network_technology: Contrail
+ network_id: {get_input: oam_net_id}
+ layer_protocol: IP
+ flow_pattern: E-LAN
+ test_access: none
+
+
+ groups:
+
+ # VF Modules
+ vfmoduleVmmeModule-1:
+ type: org.openecomp.groups.VfModule
+
+ metadata:
+ vfModuleModelName: vMME::module-1
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+
+ properties:
+ vf_module_type: Expansion # set by service designer
+ vf_module_label: vMME Expansion VF Module # set by service designer
+ vf_module_description: vMME expansion VF Module # set by service designer
+ contrail_service_instance: true # from HEAT
+ availability_zone_count: 2 # from HEAT
+ volume_group: false # from HEAT / service Designer
+ artifacts: # HEAT Templates
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+
+ members:
+ - FSB1_NR
+ - FSB2_NR
+ - NCB1_NR
+ - NCB2_NR
+ - VLC2_NR
+ - oam_net
+ - vlc2_gtp_net
+ - Internal1_net
+ - fsb1_oam
+ - Internal2_net
+
+
+
+ # HEAT Stacks
+
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+ members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam,
+ fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+ ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+ gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b,
+ vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+
+ vmme_small_create_fsb:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ description: server template for vMME
+
+ members: [ FSB1_volume, FSB2_volume ]
+
+ policies:
+ # Autoscaling policy
+ - mme_autoscale_policy:
+ type: org.openecomp.policy.Autoscaling
+ properties:
+ min_instances: 1
+ max_instances: 4
+ increment: 1
+ factor: cpu_load
+ threshold: 80%
+
+ target: [ vfmoduleVmmeModule-1]
+
+
+ substitution_mapping:
+ type: org.openecomp.resource.vf.vmme
+
+ requirements:
+ - vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo \ No newline at end of file
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDiffVersionOfSameL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDupL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDupL3Network.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDupL3Network.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3Network.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3Network.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3Network.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3NetworkInVFMod.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3NetworkInVFMod.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3NetworkInVFMod.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithUpdatedUUIDInConfig.yml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithUpdatedUUIDInConfig.yml
new file mode 100644
index 0000000000..6aee48b9d9
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithUpdatedUUIDInConfig.yml
@@ -0,0 +1,1299 @@
+---
+description: "VF Template for pseodo vMME"
+imports:
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata:
+ category: "Application L4+"
+ description: vMME_VF
+ invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+ name: vMME_VF
+ subcategory: Firewall
+ type: VF
+ UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ resourceVendor: Ericsson
+topology_template:
+ groups:
+ vfmoduleVmmeModule-1:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ metadata:
+ vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+ vfModuleModelName: "vMME::module-1"
+ vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+ vfModuleModelVersion: 1
+ properties:
+ artifacts:
+ - /Artifacts/vmme_small_create_fsb.yml
+ - /Artifacts/vmme_small.yml
+ availability_zone_count: 2
+ contrail_service_instance: true
+ vf_module_description: "vMME expansion VF Module"
+ vf_module_label: "vMME Expansion VF Module"
+ vf_module_type: Expansion
+ volume_group: false
+ type: org.openecomp.groups.VfModule
+ vmme_small:
+ members:
+ - FSB1
+ - FSB2
+ - NCB1
+ - NCB2
+ - VLC1
+ - VLC2
+ - GPB1
+ - GPB2
+ - Internal1_net
+ - Internal2_net
+ - fsb1_oam
+ - fsb1_internal1
+ - fsb1_internal2
+ - fsb2_oam
+ - fsb2_internal2
+ - ncb1_internal1
+ - ncb1_internal2
+ - ncb2_internal1
+ - ncb2_internal2
+ - gpb1_internal1
+ - gpb1_internal2
+ - gpb2_internal1
+ - gpb2_internal2
+ - vlc1_oam
+ - vlc1_internal1
+ - vlc1_internal2
+ - vlc1_sctp_a
+ - vlc1_sctp_b
+ - vlc1_gtp
+ - vlc2_oam
+ - vlc2_internal1
+ - vlc2_internal2
+ - vlc2_sctp_a
+ - vlc2_sctp_b
+ - vlc1_gtp
+ properties:
+ description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+ heat_file: ../Artifacts/vmme_small.yml
+ type: org.openecomp.groups.heat.HeatStack
+ vmme_small_create_fsb:
+ members:
+ - FSB1_volume
+ - FSB2_volume
+ properties:
+ description: "server template for vMME"
+ heat_file: ../Artifacts/vmme_small_create_fsb.yml
+ type: org.openecomp.groups.heat.HeatStack
+ inputs:
+ Internal1_net_cidr:
+ default: 169.253.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal1_net_gateway_ip:
+ default: "169.253.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_cidr:
+ default: 169.255.0.0/17
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_dhcp:
+ default: "False"
+ hidden: false
+ immutable: false
+ type: string
+ Internal2_net_gateway_ip:
+ default: "169.255.0.3"
+ hidden: false
+ immutable: false
+ type: string
+ fsb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb1_vfc_image_name:
+ default: MME_FSB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ fsb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ fsb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ fsb2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ fsb2_vfc_flavor:
+ defualt: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ fsb2_vfc_image_name:
+ default: MME_FSB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ fsb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB002
+ description: "VFC instance name"
+ type: string
+ fsb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb1_vfc_image_name:
+ default: MME_GPB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ gpb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ gpb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ gpb2_vfc_image_name:
+ default: MME_GPB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ gpb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ gpb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb1_vfc_image_name:
+ default: MME_NCB1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ ncb2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ ncb2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ ncb2_vfc_image_name:
+ default: MME_NCB2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ ncb2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ ncb2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ network_deployment_node:
+ description: "The target LCP node for deployment of this Network instance"
+ type: string
+ oam_net_id:
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ description: "uuid of oam network"
+ hidden: false
+ immutable: false
+ type: string
+ vlc1_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc1_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc1_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc1_vfc_image_name:
+ default: MME_VLC1_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc1_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc1_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ vlc2_gtp_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_internal1_mac_address:
+ default: "00:80:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_internal2_mac_address:
+ default: "00:81:37:0E:0B:12"
+ description: "Internal connection point mac_address"
+ type: string
+ vlc2_oam_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_a_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_sctp_b_ip_address:
+ default: "107.250.172.221"
+ description: "OAM ip address"
+ type: string
+ vlc2_vfc_flavor:
+ default: m4.xlarge4
+ description: "VFC flavor"
+ type: string
+ vlc2_vfc_image_name:
+ default: MME_VLC2_16ACP03.qcow2
+ description: "VFC image name"
+ type: string
+ vlc2_vfc_instance_name:
+ default: ZRDM1MMEX36FSB001
+ description: "VFC instance name"
+ type: string
+ vlc2_vfc_type_tag:
+ description: "VFC type tag"
+ type: string
+ node_templates:
+ FSB1:
+ capabilities:
+ monitoring_capabilty:
+ properties:
+ name: high_cpu
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb1_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ FSB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: fsb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: FSB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: fsb2_vfc_image_name
+ vfc_instance_name:
+ get_input: fsb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: fsb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: fsb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb1_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ GPB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: gpb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: GPB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: gpb2_vfc_image_name
+ vfc_instance_name:
+ get_input: gpb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: gpb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: gpb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ Internal1_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal1_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal1_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal1_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ Internal2_net:
+ metadata:
+ category: Generic
+ description: "Internal Network"
+ invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+ name: Network
+ subcategory: Infrastructure
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+ resourceVendor: AT&T
+ version: 1.0
+ properties:
+ cidr:
+ get_input: Internal2_net_cidr
+ contrail_virtual_network:
+ vn_external: false
+ vn_forwarding_mode: l2
+ vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+ vn_shared: false
+ enable_dhcp:
+ get_input: Internal2_net_enable_dhcp
+ flow_pattern: E-LAN
+ gateway_ip:
+ get_input: Internal2_net_gateway_ip
+ ip_version: 4
+ layer_protocol: IP
+ network_deployment_node:
+ get_input: network_deployment_node
+ network_ecomp_name: false
+ network_homing: false
+ network_role: ~
+ network_technology: Contrail
+ network_type: Tenant_Layer_3
+ test_access: none
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ NCB1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb1_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb1_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ NCB2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: ncb2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: NCB2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: ncb2_vfc_image_name
+ vfc_instance_name:
+ get_input: ncb2_vfc_instance_name
+ vfc_type_tag:
+ get_input: ncb2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ncb2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC1:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc1_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC1
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc1_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc1_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc1_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc1_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ VLC2:
+ capabilities:
+ monitoring_capability:
+ properties:
+ name: cpu_load
+ nfv_compute:
+ properties:
+ vfc_flavor:
+ get_input: vlc2_vfc_flavor
+ scaling_capability:
+ properties:
+ init_instances: 1
+ max_instances: 1
+ min_instances: 1
+ metadata:
+ category: Generic
+ description: "VFC based on OpenStack Nova Server"
+ invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+ name: "Nova Server"
+ subcategory: Infrastructure
+ type: VFC
+ UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+ resourceVendor: Ericsson
+ version: 1.0
+ properties:
+ vfc_description: VLC2
+ vfc_ecomp_name: false
+ vfc_image_name:
+ get_input: vlc2_vfc_image_name
+ vfc_instance_name:
+ get_input: vlc2_vfc_instance_name
+ vfc_type_tag:
+ get_input: vlc2_vfc_type_tag
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_oam
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vlc2_internal2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ fsb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: fsb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ fsb2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: fsb2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ gpb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: gpb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ ncb2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: ncb2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ oam_net:
+ metadata:
+ category: VL
+ description: "Mobility OAM Network"
+ invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+ name: "Mobility OAM Network"
+ type: VL
+ UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+ resourceVendor: AT&T
+ version: 2.0
+ properties:
+ flow_pattern: E-LAN
+ layer_protocol: IP
+ network_id:
+ get_input: oam_net_id
+ network_technology: Contrail
+ network_type: vIPR_ATM_OAM
+ test_access: none
+ type: org.openecomp.resource.vl.OAM
+ vlc1_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc1_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc1_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc1_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_gtp_net:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_gtp_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal1:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal1_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal1_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_internal2:
+ properties:
+ address_info:
+ mac_address:
+ get_input: vlc2_internal2_mac_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: Internal2_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_oam:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_oam_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ -
+ link:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_net
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_a:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_a_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ vlc2_sctp_b:
+ properties:
+ address_Info:
+ ip_address:
+ get_input: vlc2_sctp_b_ip_address
+ requirements:
+ -
+ binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ policies:
+ -
+ mme_autoscale_policy:
+ properties:
+ factor: cpu_load
+ increment: 1
+ max_instances: 4
+ min_instances: 1
+ threshold: 80%
+ target:
+ - vfmoduleVmmeModule-1
+ type: org.openecomp.policy.Autoscaling
+ substitution_mapping:
+ requirements:
+ -
+ vlc1_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc2_gtp_net.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_a.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ -
+ vlc1_sctp_b.link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/openecomp-sdc-artifact-generator-lib/pom.xml b/common/openecomp-sdc-artifact-generator-lib/pom.xml
new file mode 100644
index 0000000000..0ad185395b
--- /dev/null
+++ b/common/openecomp-sdc-artifact-generator-lib/pom.xml
@@ -0,0 +1,24 @@
+<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-artifact-generator-lib</name>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-lib</artifactId>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+
+ <modules>
+ <module>openecomp-sdc-artifact-generator-api</module>
+ <module>openecomp-sdc-artifact-generator-core</module>
+ <module>openecomp-sdc-artifact-generator-test</module>
+ </modules>
+
+</project>
diff --git a/common/openecomp-tosca-datatype/pom.xml b/common/openecomp-tosca-datatype/pom.xml
new file mode 100644
index 0000000000..50919463d0
--- /dev/null
+++ b/common/openecomp-tosca-datatype/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>
+
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+
+ <parent>
+ <artifactId>openecomp-common-lib</artifactId>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <version>1.17</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactDefinition.java
new file mode 100644
index 0000000000..0eaabc4334
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactDefinition.java
@@ -0,0 +1,71 @@
+/*-
+ * ============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.datatypes.model;
+
+
+
+public class ArtifactDefinition {
+ private String type;
+ private String file;
+ private String repository;
+ private String description;
+ private String deploy_path;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getFile() {
+ return file;
+ }
+
+ public void setFile(String file) {
+ this.file = file;
+ }
+
+ public String getRepository() {
+ return repository;
+ }
+
+ public void setRepository(String repository) {
+ this.repository = repository;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getDeploy_path() {
+ return deploy_path;
+ }
+
+ public void setDeploy_path(String deploy_path) {
+ this.deploy_path = deploy_path;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactType.java
new file mode 100644
index 0000000000..873796445d
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ArtifactType.java
@@ -0,0 +1,85 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class ArtifactType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private String mime_type;
+ private List<String> file_ext;
+ private Map<String, PropertyDefinition> properties;
+
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ 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;
+ }
+
+ public String getMime_type() {
+ return mime_type;
+ }
+
+ public void setMime_type(String mime_type) {
+ this.mime_type = mime_type;
+ }
+
+ public List<String> getFile_ext() {
+ return file_ext;
+ }
+
+ public void setFile_ext(List<String> file_ext) {
+ this.file_ext = file_ext;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/AttributeDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/AttributeDefinition.java
new file mode 100644
index 0000000000..97a1add3b0
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/AttributeDefinition.java
@@ -0,0 +1,88 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.Objects;
+
+public class AttributeDefinition {
+
+ private String type;
+ private String description;
+ private Object _default;
+ private Status status;
+ private EntrySchema entry_schema;
+
+ public AttributeDefinition() {
+ status = Status.SUPPORTED;
+ }
+
+ public EntrySchema getEntry_schema() {
+ return entry_schema;
+ }
+
+ public void setEntry_schema(EntrySchema entry_schema) {
+ this.entry_schema = entry_schema;
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ public Object get_default() {
+ return _default;
+ }
+
+ public void set_default(Object _default) {
+ this._default = _default;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @Override
+ public AttributeDefinition clone() {
+ AttributeDefinition attributeDefinition = new AttributeDefinition();
+ attributeDefinition.setType(this.getType());
+ attributeDefinition.setDescription(this.getDescription());
+ attributeDefinition.set_default(this.get_default());
+ attributeDefinition.setStatus(this.getStatus());
+ attributeDefinition.setEntry_schema(
+ Objects.isNull(this.getEntry_schema()) ? null : this.getEntry_schema().clone());
+ return attributeDefinition;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityAssignment.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityAssignment.java
new file mode 100644
index 0000000000..072c532ae6
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityAssignment.java
@@ -0,0 +1,47 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.Map;
+
+
+
+public class CapabilityAssignment {
+
+ private Map<String, Object> properties;
+ private Map<String, Object> attributes;
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, Object> attributes) {
+ this.attributes = attributes;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinition.java
new file mode 100644
index 0000000000..61abeb09a0
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinition.java
@@ -0,0 +1,112 @@
+/*-
+ * ============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.datatypes.model;
+
+import org.openecomp.sdc.tosca.services.DataModelCloneUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public class CapabilityDefinition {
+
+ private String type;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private List<String> valid_source_types;
+ private Object[] occurrences;
+
+
+ /**
+ * Constructor.
+ */
+ public CapabilityDefinition() {
+ occurrences = new Object[2];
+ occurrences[0] = 1;
+ occurrences[1] = "UNBOUNDED";
+ }
+
+ 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 Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<String> getValid_source_types() {
+ return valid_source_types;
+ }
+
+ public void setValid_source_types(List<String> valid_source_types) {
+ this.valid_source_types = valid_source_types;
+ }
+
+ public Object[] getOccurrences() {
+ return occurrences;
+ }
+
+ public void setOccurrences(Object[] occurrences) {
+ this.occurrences = occurrences;
+ }
+
+ @Override
+ public CapabilityDefinition clone() {
+ CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
+ capabilityDefinition
+ .setOccurrences(new Object[]{this.getOccurrences()[0], this.getOccurrences()[1]});
+ capabilityDefinition
+ .setProperties(DataModelCloneUtil.clonePropertyDefinitions(this.getProperties()));
+ capabilityDefinition.setType(this.getType());
+ capabilityDefinition
+ .setAttributes(DataModelCloneUtil.cloneAttributeDefinitions(this.getAttributes()));
+ capabilityDefinition.setDescription(this.getDescription());
+ capabilityDefinition
+ .setValid_source_types(DataModelCloneUtil.cloneValidSourceTypes(this.getValid_source_types()));
+ return capabilityDefinition;
+
+ }
+
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java
new file mode 100644
index 0000000000..f600a2fbfa
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityFilterDefinition.java
@@ -0,0 +1,37 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+
+
+
+public class CapabilityFilterDefinition {
+ List<Constraint> properties;
+
+ public List<Constraint> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(List<Constraint> properties) {
+ this.properties = properties;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityType.java
new file mode 100644
index 0000000000..671d84369b
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityType.java
@@ -0,0 +1,84 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class CapabilityType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private List<String> valid_source_types;
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ 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;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<String> getValid_source_types() {
+ return valid_source_types;
+ }
+
+ public void setValid_source_types(List<String> valid_source_types) {
+ this.valid_source_types = valid_source_types;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Constraint.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Constraint.java
new file mode 100644
index 0000000000..d6653fdae1
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Constraint.java
@@ -0,0 +1,179 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Constraint {
+ private Object equal;
+ private Object greater_or_equal;
+ private Object greater_than;
+ private Object less_than;
+ private Object less_or_equal;
+ private Object[] in_range;
+ private List<Object> valid_values;
+ private Integer length;
+ private Integer min_length;
+ private Integer max_length;
+ private Object pattern;
+
+ public Constraint() {
+ }
+
+ public Object getGreater_or_equal() {
+ return greater_or_equal;
+ }
+
+ public void setGreater_or_equal(Object greater_or_equal) {
+ this.greater_or_equal = greater_or_equal;
+ }
+
+ public Object getEqual() {
+ return equal;
+ }
+
+ public void setEqual(Object equal) {
+ this.equal = equal;
+ }
+
+ public Object getGreater_than() {
+ return greater_than;
+ }
+
+ public void setGreater_than(Object greater_than) {
+ this.greater_than = greater_than;
+ }
+
+ public Object getLess_than() {
+ return less_than;
+ }
+
+ public void setLess_than(Object less_than) {
+ this.less_than = less_than;
+ }
+
+ public Object getLess_or_equal() {
+ return less_or_equal;
+ }
+
+ public void setLess_or_equal(Object less_or_equal) {
+ this.less_or_equal = less_or_equal;
+ }
+
+ public Object[] getIn_range() {
+ return in_range;
+ }
+
+ /**
+ * Sets in_range attribute.
+ * @param in_range.
+ */
+ public void setIn_range(Object[] in_range) {
+ this.in_range = new Object[2];
+ this.in_range[0] = in_range[0];
+ this.in_range[1] = in_range[1];
+ }
+
+ public List<Object> getValid_values() {
+ return valid_values;
+ }
+
+ public void setValid_values(List<Object> valid_values) {
+ this.valid_values = valid_values;
+ }
+
+ /**
+ * Add Valid value
+ * @param validValue object.
+ */
+ public void addValidValue(Object validValue) {
+ if (this.valid_values == null) {
+ this.valid_values = new ArrayList<>();
+ }
+ valid_values.add(validValue);
+ }
+
+ public Integer getLength() {
+ return length;
+ }
+
+ public void setLength(Integer length) {
+ this.length = length;
+ }
+
+ public Integer getMin_length() {
+ return min_length;
+ }
+
+ public void setMin_length(Integer min_length) {
+ this.min_length = min_length;
+ }
+
+ public Integer getMax_length() {
+ return max_length;
+ }
+
+ public void setMax_length(Integer max_length) {
+ this.max_length = max_length;
+ }
+
+ public Object getPattern() {
+ return pattern;
+ }
+
+ public void setPattern(Object pattern) {
+ this.pattern = pattern;
+ }
+
+ @Override
+ public Constraint clone() {
+ Constraint constraint = new Constraint();
+ constraint.setEqual(this.getEqual());
+ constraint.setGreater_or_equal(this.getGreater_or_equal());
+ constraint.setGreater_than(this.getGreater_than());
+ cloneInRange(constraint);
+ constraint.setLength(this.getLength());
+ constraint.setLess_or_equal(this.getLess_or_equal());
+ constraint.setLess_than(this.getLess_than());
+ constraint.setMax_length(this.getMax_length());
+ constraint.setMin_length(this.getMin_length());
+ constraint.setPattern(this.getPattern());
+ cloneValidValues(constraint);
+
+ return constraint;
+ }
+
+ private void cloneInRange(Constraint constraint) {
+ if (this.getIn_range() != null) {
+ constraint.setIn_range(new Object[]{this.getIn_range()[0], this.getIn_range()[1]});
+ }
+ }
+
+ private void cloneValidValues(Constraint constraint) {
+ if (this.getValid_values() != null) {
+ constraint.setValid_values(new ArrayList<>());
+ for (Object entry : this.getValid_values()) {
+ constraint.getValid_values().add(entry);
+ }
+ }
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/DataType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/DataType.java
new file mode 100644
index 0000000000..7a3732e9ad
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/DataType.java
@@ -0,0 +1,123 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class DataType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private List<Constraint> constraints;
+ private Map<String, PropertyDefinition> properties;
+
+ /**
+ * Gets derived from.
+ *
+ * @return the derived from
+ */
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ /**
+ * Sets derived from.
+ *
+ * @param derived_from the derived from
+ */
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ /**
+ * Gets version.
+ *
+ * @return the version
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * Sets version.
+ *
+ * @param version the version
+ */
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ /**
+ * Gets description.
+ *
+ * @return the description
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets description.
+ *
+ * @param description the description
+ */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /**
+ * Gets constraints.
+ *
+ * @return the constraints
+ */
+ public List<Constraint> getConstraints() {
+ return constraints;
+ }
+
+ /**
+ * Sets constraints.
+ *
+ * @param constraints the constraints
+ */
+ public void setConstraints(List<Constraint> constraints) {
+ this.constraints = constraints;
+ }
+
+ /**
+ * Gets properties.
+ *
+ * @return the properties
+ */
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ /**
+ * Sets properties.
+ *
+ * @param properties the properties
+ */
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Directive.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Directive.java
new file mode 100644
index 0000000000..af9215f54e
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Directive.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.tosca.datatypes.model;
+
+
+
+public enum Directive {
+
+
+ SELECTABLE("selectable"),
+ SUBSTITUTABLE("substitutable");
+
+ private String displayName;
+
+ Directive(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/EntrySchema.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/EntrySchema.java
new file mode 100644
index 0000000000..ec5bb3b3fa
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/EntrySchema.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.sdc.tosca.datatypes.model;
+
+import org.openecomp.sdc.tosca.services.DataModelCloneUtil;
+
+import java.util.List;
+
+public class EntrySchema {
+
+ private String description;
+ private String type;
+ private List<Constraint> constraints;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public List<Constraint> getConstraints() {
+ return constraints;
+ }
+
+ public void setConstraints(List<Constraint> constraints) {
+ this.constraints = constraints;
+ }
+
+ @Override
+ public EntrySchema clone() {
+ EntrySchema entrySchema = new EntrySchema();
+ entrySchema.setDescription(this.getDescription());
+ entrySchema.setType(this.getType());
+ entrySchema.setConstraints(DataModelCloneUtil.cloneConstraints(this.getConstraints()));
+ return entrySchema;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupDefinition.java
new file mode 100644
index 0000000000..00eebbf273
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupDefinition.java
@@ -0,0 +1,66 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class GroupDefinition {
+
+ private String type;
+ private String description;
+ private Map<String, Object> properties;
+ private List<String> members;
+
+ 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 Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getMembers() {
+ return members;
+ }
+
+ public void setMembers(List<String> members) {
+ this.members = members;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupType.java
new file mode 100644
index 0000000000..9f857e1fcc
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/GroupType.java
@@ -0,0 +1,84 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class GroupType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private List<String> members;
+ private Map<String, Object> interfaces;
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ 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;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getMembers() {
+ return members;
+ }
+
+ public void setMembers(List<String> members) {
+ this.members = members;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Import.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Import.java
new file mode 100644
index 0000000000..451d76ee11
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Import.java
@@ -0,0 +1,63 @@
+/*-
+ * ============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.datatypes.model;
+
+
+
+public class Import {
+
+ private String file;
+ private String repository;
+ private String namespace_uri;
+ private String namespace_prefix;
+
+ public String getFile() {
+ return file;
+ }
+
+ public void setFile(String file) {
+ this.file = file;
+ }
+
+ public String getRepository() {
+ return repository;
+ }
+
+ public void setRepository(String repository) {
+ this.repository = repository;
+ }
+
+ public String getNamespace_uri() {
+ return namespace_uri;
+ }
+
+ public void setNamespace_uri(String namespace_uri) {
+ this.namespace_uri = namespace_uri;
+ }
+
+ public String getNamespace_prefix() {
+ return namespace_prefix;
+ }
+
+ public void setNamespace_prefix(String namespace_prefix) {
+ this.namespace_prefix = namespace_prefix;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceDefinition.java
new file mode 100644
index 0000000000..ecfbbaff21
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceDefinition.java
@@ -0,0 +1,26 @@
+/*-
+ * ============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.datatypes.model;
+
+
+
+public class InterfaceDefinition {
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceType.java
new file mode 100644
index 0000000000..a9f0b2d917
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/InterfaceType.java
@@ -0,0 +1,26 @@
+/*-
+ * ============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.datatypes.model;
+
+
+
+public class InterfaceType {
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilter.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilter.java
new file mode 100644
index 0000000000..9174262138
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilter.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.sdc.tosca.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class NodeFilter {
+
+ Map<String, List<Constraint>> properties;
+ Map<String, CapabilityFilterDefinition> capabilities;
+
+ public Map<String, List<Constraint>> getProperties() {
+
+ return properties;
+ }
+
+ public void setProperties(Map<String, List<Constraint>> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, CapabilityFilterDefinition> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityFilterDefinition> capabilities) {
+ this.capabilities = capabilities;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeTemplate.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeTemplate.java
new file mode 100644
index 0000000000..fabf5eac27
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeTemplate.java
@@ -0,0 +1,137 @@
+/*-
+ * ============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.datatypes.model;
+
+import org.openecomp.sdc.tosca.services.YamlUtil;
+
+import java.util.List;
+import java.util.Map;
+
+
+public class NodeTemplate implements Template {
+
+ private String type;
+ private String description;
+ private List<String> directives;
+ private Map<String, Object> properties;
+ private Map<String, Object> attributes;
+ private List<Map<String, RequirementAssignment>> requirements;
+ private List<Map<String, CapabilityAssignment>> capabilities;
+ private Map<String, InterfaceDefinition> interfaces;
+ private Map<String, ArtifactDefinition> artifacts;
+ private NodeFilter node_filter;
+ private String copy;
+
+ 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 List<String> getDirectives() {
+ return directives;
+ }
+
+ public void setDirectives(List<String> directives) {
+ this.directives = directives;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, Object> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<Map<String, RequirementAssignment>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(List<Map<String, RequirementAssignment>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public List<Map<String, CapabilityAssignment>> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(List<Map<String, CapabilityAssignment>> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, InterfaceDefinition> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, InterfaceDefinition> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public Map<String, ArtifactDefinition> getArtifacts() {
+ return artifacts;
+ }
+
+ public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
+ this.artifacts = artifacts;
+ }
+
+ public NodeFilter getNode_filter() {
+ return node_filter;
+ }
+
+ public void setNode_filter(NodeFilter node_filter) {
+ this.node_filter = node_filter;
+ }
+
+ public String getCopy() {
+ return copy;
+ }
+
+ public void setCopy(String copy) {
+ this.copy = copy;
+ }
+
+ @Override
+ public NodeTemplate clone() {
+ YamlUtil yamlUtil = new YamlUtil();
+ NodeTemplate clone = yamlUtil.yamlToObject(yamlUtil.objectToYaml(this), NodeTemplate.class);
+ return clone;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeType.java
new file mode 100644
index 0000000000..f1eb5acc24
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/NodeType.java
@@ -0,0 +1,125 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class NodeType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private List<Map<String, RequirementDefinition>> requirements;
+ private Map<String, CapabilityDefinition> capabilities;
+ private Map<String, Object> interfaces;
+ private Map<String, ArtifactDefinition> artifacts;
+
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ 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;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<Map<String, RequirementDefinition>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(List<Map<String, RequirementDefinition>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, CapabilityDefinition> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityDefinition> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public Map<String, ArtifactDefinition> getArtifacts() {
+ return artifacts;
+ }
+
+ public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
+ this.artifacts = artifacts;
+ }
+
+ @Override
+ public NodeType clone() {
+ NodeType clone = new NodeType();
+ clone.setCapabilities(this.getCapabilities());
+ clone.setDerived_from(this.getDerived_from());
+ clone.setProperties(this.getProperties());
+ clone.setRequirements(this.getRequirements());
+ clone.setDescription(this.getDescription());
+ clone.setAttributes(this.getAttributes());
+ clone.setInterfaces(this.getInterfaces());
+ clone.setVersion(this.getVersion());
+ clone.setArtifacts(this.getArtifacts());
+ return clone;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ParameterDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ParameterDefinition.java
new file mode 100644
index 0000000000..4d2baf090f
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ParameterDefinition.java
@@ -0,0 +1,101 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+
+
+
+public class ParameterDefinition {
+
+ private String type;
+ private String description;
+ private Object value;
+ private Boolean required;
+ private Object _default;
+ private Status status;
+ private List<Constraint> constraints;
+ private EntrySchema entry_schema;
+
+ 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 Object getValue() {
+ return value;
+ }
+
+ public void setValue(Object value) {
+ this.value = value;
+ }
+
+ public Boolean getRequired() {
+ return required;
+ }
+
+ public void setRequired(Boolean required) {
+ this.required = required;
+ }
+
+ public Object get_default() {
+ return _default;
+ }
+
+ public void set_default(Object _default) {
+ this._default = _default;
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ public List<Constraint> getConstraints() {
+ return constraints;
+ }
+
+ public void setConstraints(List<Constraint> constraints) {
+ this.constraints = constraints;
+ }
+
+ public EntrySchema getEntry_schema() {
+ return entry_schema;
+ }
+
+ public void setEntry_schema(EntrySchema entry_schema) {
+ this.entry_schema = entry_schema;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyDefinition.java
new file mode 100644
index 0000000000..90f44ae36a
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyDefinition.java
@@ -0,0 +1,63 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class PolicyDefinition implements Template {
+ private String type;
+ private String description;
+ private Map<String, Object> properties;
+ private List<String> targets;
+
+ 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 Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getTargets() {
+ return targets;
+ }
+
+ public void setTargets(List<String> targets) {
+ this.targets = targets;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyType.java
new file mode 100644
index 0000000000..3c3b931e06
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PolicyType.java
@@ -0,0 +1,75 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class PolicyType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private List<String> targets;
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ 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;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public List<String> getTargets() {
+ return targets;
+ }
+
+ public void setTargets(List<String> targets) {
+ this.targets = targets;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyDefinition.java
new file mode 100644
index 0000000000..c5363eda79
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyDefinition.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.tosca.datatypes.model;
+
+import org.openecomp.sdc.tosca.services.DataModelCloneUtil;
+
+import java.util.List;
+import java.util.Objects;
+
+public class PropertyDefinition {
+
+ private String type;
+ private String description;
+ private Boolean required;
+ private Object _default;
+ private Status status;
+ private List<Constraint> constraints;
+ private EntrySchema entry_schema;
+
+ public PropertyDefinition() {
+ status = Status.SUPPORTED;
+ required = true;
+ }
+
+ 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 Boolean getRequired() {
+ return required;
+ }
+
+ public void setRequired(Boolean required) {
+ this.required = required;
+ }
+
+ public Object get_default() {
+ return _default;
+ }
+
+ public void set_default(Object _default) {
+ this._default = _default;
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ public List<Constraint> getConstraints() {
+ return constraints;
+ }
+
+ public void setConstraints(List<Constraint> constraints) {
+ this.constraints = constraints;
+ }
+
+ public EntrySchema getEntry_schema() {
+ return entry_schema;
+ }
+
+ public void setEntry_schema(EntrySchema entry_schema) {
+ this.entry_schema = entry_schema;
+ }
+
+ @Override
+ public PropertyDefinition clone() {
+ PropertyDefinition propertyDefinition = new PropertyDefinition();
+ propertyDefinition.setType(this.getType());
+ propertyDefinition.setDescription(this.getDescription());
+ propertyDefinition.setRequired(this.getRequired());
+ propertyDefinition.set_default(this.get_default());
+ propertyDefinition.setStatus(this.getStatus());
+ propertyDefinition.setEntry_schema(
+ Objects.isNull(this.getEntry_schema()) ? null : this.getEntry_schema().clone());
+ propertyDefinition.setConstraints(DataModelCloneUtil.cloneConstraints(this.getConstraints()));
+ return propertyDefinition;
+ }
+
+
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyType.java
new file mode 100644
index 0000000000..bebf6d34bf
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyType.java
@@ -0,0 +1,81 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+public enum PropertyType {
+
+ STRING("string"),
+ INTEGER("integer"),
+ FLOAT("float"),
+ BOOLEAN("boolean"),
+ TIMESTAMP("timestamp"),
+ NULL("null"),
+ MAP("map"),
+ LIST("list"),
+ SCALAR_UNIT_SIZE("scalar-unit.size"),
+ SCALAR_UNIT_FREQUENCY("scalar-unit.frequency");
+
+ private static final Map<String, PropertyType> mMap =
+ Collections.unmodifiableMap(initializeMapping());
+ private String displayName;
+
+ PropertyType(String displayName) {
+
+ this.displayName = displayName;
+ }
+
+ /**
+ * Initilize property type display name mapping.
+ * @return Map
+ */
+ public static Map<String, PropertyType> initializeMapping() {
+ Map<String, PropertyType> typeMap = new HashMap<String, PropertyType>();
+ for (PropertyType v : PropertyType.values()) {
+ typeMap.put(v.displayName, v);
+ }
+ return typeMap;
+ }
+
+ /**
+ * Get Property type by display name.
+ * @param displayName.
+ * @return PropertyType
+ */
+ public static PropertyType getPropertyTypeByDisplayName(String displayName) {
+ if (mMap == null) {
+ initializeMapping();
+ }
+ if (mMap.containsKey(displayName)) {
+ return mMap.get(displayName);
+ }
+ return null;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipTemplate.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipTemplate.java
new file mode 100644
index 0000000000..5ba748dcee
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipTemplate.java
@@ -0,0 +1,101 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.Map;
+
+
+
+public class RelationshipTemplate implements Template {
+
+ private String type;
+ private String description;
+ private Map<String, Object> properties;
+ private Map<String, Object> attributes;
+ private Map<String, RequirementAssignment> requirements;
+ private Map<String, CapabilityAssignment> capabilities;
+ private Map<String, InterfaceDefinition> interfaces;
+ private String copy;
+
+ 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 Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, Object> attributes) {
+ this.attributes = attributes;
+ }
+
+ public Map<String, RequirementAssignment> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(Map<String, RequirementAssignment> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, CapabilityAssignment> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, CapabilityAssignment> capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public Map<String, InterfaceDefinition> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, InterfaceDefinition> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public String getCopy() {
+ return copy;
+ }
+
+ public void setCopy(String copy) {
+ this.copy = copy;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipType.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipType.java
new file mode 100644
index 0000000000..2d113775a1
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RelationshipType.java
@@ -0,0 +1,93 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class RelationshipType {
+
+ private String derived_from;
+ private String version;
+ private String description;
+ private Map<String, PropertyDefinition> properties;
+ private Map<String, AttributeDefinition> attributes;
+ private Map<String, Object> interfaces;
+ private List<String> valid_target_types;
+ //An optional list of one or more names of Capability Types that are valid targets
+ // for this relationship
+
+ public String getDerived_from() {
+ return derived_from;
+ }
+
+ public void setDerived_from(String derived_from) {
+ this.derived_from = derived_from;
+ }
+
+ 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;
+ }
+
+ public Map<String, PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, AttributeDefinition> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map<String, AttributeDefinition> attributes) {
+ this.attributes = attributes;
+ }
+
+ public Map<String, Object> getInterfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(Map<String, Object> interfaces) {
+ this.interfaces = interfaces;
+ }
+
+ public List<String> getValid_target_types() {
+ return valid_target_types;
+ }
+
+ public void setValid_target_types(List<String> valid_target_types) {
+ this.valid_target_types = valid_target_types;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementAssignment.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementAssignment.java
new file mode 100644
index 0000000000..b94cc67f13
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementAssignment.java
@@ -0,0 +1,73 @@
+/*-
+ * ============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.datatypes.model;
+
+
+import java.util.Arrays;
+
+public class RequirementAssignment {
+
+ private String capability;
+ private String node;
+ private String relationship;
+ private NodeFilter node_filter;
+ private Object[] occurrences;
+
+ public String getCapability() {
+ return capability;
+ }
+
+ public void setCapability(String capability) {
+ this.capability = capability;
+ }
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String node) {
+ this.node = node;
+ }
+
+ public String getRelationship() {
+ return relationship;
+ }
+
+ public void setRelationship(String relationship) {
+ this.relationship = relationship;
+ }
+
+ public NodeFilter getNode_filter() {
+ return node_filter;
+ }
+
+ public void setNode_filter(NodeFilter node_filter) {
+ this.node_filter = node_filter;
+ }
+
+ public Object[] getOccurrences() {
+ return occurrences;
+ }
+
+ public void setOccurrences(Object[] occurrences) {
+ this.occurrences = occurrences;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinition.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinition.java
new file mode 100644
index 0000000000..a9b20736dc
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinition.java
@@ -0,0 +1,83 @@
+/*-
+ * ============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.datatypes.model;
+
+
+public class RequirementDefinition {
+
+ private String capability;
+ private String node;
+ private String relationship;
+ private Object[] occurrences;
+
+ /**
+ * Instantiates a new Requirement definition.
+ */
+ public RequirementDefinition() {
+ occurrences = new Object[2];
+ occurrences[0] = 1;
+ occurrences[1] = 1;
+ }
+
+ public String getCapability() {
+ return capability;
+ }
+
+ public void setCapability(String capability) {
+ this.capability = capability;
+ }
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String node) {
+ this.node = node;
+ }
+
+ public String getRelationship() {
+ return relationship;
+ }
+
+ public void setRelationship(String relationship) {
+ this.relationship = relationship;
+ }
+
+ public Object[] getOccurrences() {
+ return occurrences;
+ }
+
+ public void setOccurrences(Object[] occurrences) {
+ this.occurrences = occurrences;
+ }
+
+ @Override
+ public RequirementDefinition clone() {
+ RequirementDefinition requirementDefinition = new RequirementDefinition();
+ requirementDefinition.setNode(this.getNode());
+ requirementDefinition.setRelationship(this.getRelationship());
+ requirementDefinition.setCapability(this.getCapability());
+ requirementDefinition
+ .setOccurrences(new Object[]{this.getOccurrences()[0], this.getOccurrences()[1]});
+ return requirementDefinition;
+ }
+
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Scalar.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Scalar.java
new file mode 100644
index 0000000000..9073ff3d7b
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Scalar.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.tosca.datatypes.model;
+
+
+
+public class Scalar {
+
+ private Float value;
+
+ public Float getValue() {
+ return value;
+ }
+
+ public void setValue(Float value) {
+ this.value = value;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ServiceTemplate.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ServiceTemplate.java
new file mode 100644
index 0000000000..aecb9315e3
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/ServiceTemplate.java
@@ -0,0 +1,148 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+public class ServiceTemplate implements Template {
+
+ private String tosca_definitions_version;
+ private Map<String, String> metadata;
+ private String description;
+ private List<Map<String, Import>> imports;
+ private Map<String, ArtifactType> artifact_types;
+ private Map<String, DataType> data_types;
+ private Map<String, CapabilityType> capability_types;
+ private Map<String, Object> interface_types;
+ private Map<String, RelationshipType> relationship_types;
+ private Map<String, NodeType> node_types;
+ private Map<String, GroupType> group_types;
+ private Map<String, PolicyType> policy_types;
+ private TopologyTemplate topology_template;
+
+ public String getTosca_definitions_version() {
+ return tosca_definitions_version;
+ }
+
+ public void setTosca_definitions_version(String tosca_definitions_version) {
+ this.tosca_definitions_version = tosca_definitions_version;
+ }
+
+ public Map<String, String> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, String> metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<Map<String, Import>> getImports() {
+ return imports;
+ }
+
+ public void setImports(
+ List<Map<String, Import>> imports) {
+ this.imports = imports;
+ }
+
+ public Map<String, ArtifactType> getArtifact_types() {
+ return artifact_types;
+ }
+
+ public void setArtifact_types(Map<String, ArtifactType> artifact_types) {
+ this.artifact_types = artifact_types;
+ }
+
+ public Map<String, DataType> getData_types() {
+ return data_types;
+ }
+
+ public void setData_types(Map<String, DataType> data_types) {
+ this.data_types = data_types;
+ }
+
+ public Map<String, CapabilityType> getCapability_types() {
+ return capability_types;
+ }
+
+ public void setCapability_types(Map<String, CapabilityType> capability_types) {
+ this.capability_types = capability_types;
+ }
+
+ public Map<String, RelationshipType> getRelationship_types() {
+ return relationship_types;
+ }
+
+ public void setRelationship_types(Map<String, RelationshipType> relationship_types) {
+ this.relationship_types = relationship_types;
+ }
+
+ public Map<String, NodeType> getNode_types() {
+ return node_types;
+ }
+
+ public void setNode_types(Map<String, NodeType> node_types) {
+ this.node_types = node_types;
+ }
+
+ public Map<String, GroupType> getGroup_types() {
+ return group_types;
+ }
+
+ public void setGroup_types(Map<String, GroupType> group_types) {
+ this.group_types = group_types;
+ }
+
+ public Map<String, Object> getInterface_types() {
+ return interface_types;
+ }
+
+ public void setInterface_types(Map<String, Object> interface_types) {
+ this.interface_types = interface_types;
+ }
+
+ public Map<String, PolicyType> getPolicy_types() {
+ return policy_types;
+ }
+
+ public void setPolicy_types(Map<String, PolicyType> policy_types) {
+ this.policy_types = policy_types;
+ }
+
+ public TopologyTemplate getTopology_template() {
+ return topology_template;
+ }
+
+ public void setTopology_template(TopologyTemplate topology_template) {
+ this.topology_template = topology_template;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Status.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Status.java
new file mode 100644
index 0000000000..79c6df81cd
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Status.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.tosca.datatypes.model;
+
+
+
+public enum Status {
+
+ SUPPORTED("supported"),
+ UNSUPPORTED("unsupported"),
+ EXPERIMENTAL("experimental"),
+ DEPRECATED("deprecated"),;
+ private String displayName;
+
+ Status(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/SubstitutionMapping.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/SubstitutionMapping.java
new file mode 100644
index 0000000000..51373e484e
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/SubstitutionMapping.java
@@ -0,0 +1,54 @@
+/*-
+ * ============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.datatypes.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class SubstitutionMapping {
+ private String node_type;
+ private Map<String, List<String>> capabilities;
+ private Map<String, List<String>> requirements;
+
+ public String getNode_type() {
+ return node_type;
+ }
+
+ public void setNode_type(String node_type) {
+ this.node_type = node_type;
+ }
+
+ public Map<String, List<String>> getRequirements() {
+ return requirements;
+ }
+
+ public void setRequirements(Map<String, List<String>> requirements) {
+ this.requirements = requirements;
+ }
+
+ public Map<String, List<String>> getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Map<String, List<String>> capabilities) {
+ this.capabilities = capabilities;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Template.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Template.java
new file mode 100644
index 0000000000..128bb3c0a9
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/Template.java
@@ -0,0 +1,24 @@
+/*-
+ * ============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.datatypes.model;
+
+public interface Template {
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/TopologyTemplate.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/TopologyTemplate.java
new file mode 100644
index 0000000000..88c76e59d4
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/TopologyTemplate.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.tosca.datatypes.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+public class TopologyTemplate {
+
+ private String description;
+ private Map<String, ParameterDefinition> inputs;
+ private Map<String, NodeTemplate> node_templates;
+ private Map<String, RelationshipTemplate> relationship_templates;
+ private Map<String, GroupDefinition> groups;
+ private Map<String, ParameterDefinition> outputs;
+ private SubstitutionMapping substitution_mappings;
+ private Map<String, PolicyDefinition> policies;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, ParameterDefinition> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(Map<String, ParameterDefinition> inputs) {
+ this.inputs = inputs;
+ }
+
+ public Map<String, NodeTemplate> getNode_templates() {
+ return node_templates;
+ }
+
+ public void setNode_templates(Map<String, NodeTemplate> node_templates) {
+ this.node_templates = node_templates;
+ }
+
+ public Map<String, RelationshipTemplate> getRelationship_templates() {
+ return relationship_templates;
+ }
+
+ public void setRelationship_templates(Map<String, RelationshipTemplate> relationship_templates) {
+ this.relationship_templates = relationship_templates;
+ }
+
+ public Map<String, GroupDefinition> getGroups() {
+ return groups;
+ }
+
+ public void setGroups(Map<String, GroupDefinition> groups) {
+ this.groups = groups;
+ }
+
+ /**
+ * Add group.
+ *
+ * @param groupKey the group key
+ * @param groupDefinition the group definition
+ */
+ public void addGroup(String groupKey, GroupDefinition groupDefinition) {
+ if (Objects.isNull(this.groups)) {
+ this.groups = new HashMap<>();
+ }
+ this.groups.put(groupKey, groupDefinition);
+ }
+
+ public Map<String, ParameterDefinition> getOutputs() {
+ return outputs;
+ }
+
+ public void setOutputs(Map<String, ParameterDefinition> outputs) {
+ this.outputs = outputs;
+ }
+
+ public SubstitutionMapping getSubstitution_mappings() {
+ return substitution_mappings;
+ }
+
+ public void setSubstitution_mappings(SubstitutionMapping substitution_mappings) {
+ this.substitution_mappings = substitution_mappings;
+ }
+
+ public Map<String, PolicyDefinition> getPolicies() {
+ return policies;
+ }
+
+ public void setPolicies(Map<String, PolicyDefinition> policies) {
+ this.policies = policies;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java
new file mode 100644
index 0000000000..5442db244f
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/ParameterDefinitionExt.java
@@ -0,0 +1,57 @@
+/*-
+ * ============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.datatypes.model.heatextend;
+
+
+import org.openecomp.sdc.tosca.datatypes.model.ParameterDefinition;
+
+
+
+public class ParameterDefinitionExt extends ParameterDefinition {
+
+ String label;
+ Boolean hidden;
+ Boolean immutable;
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public Boolean getHidden() {
+ return hidden;
+ }
+
+ public void setHidden(Boolean hidden) {
+ this.hidden = hidden;
+ }
+
+ public Boolean getImmutable() {
+ return immutable;
+ }
+
+ public void setImmutable(Boolean immutable) {
+ this.immutable = immutable;
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java
new file mode 100644
index 0000000000..f92d674070
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/heatextend/PropertyTypeExt.java
@@ -0,0 +1,85 @@
+/*-
+ * ============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.datatypes.model.heatextend;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The enum Property type ext.
+ */
+public enum PropertyTypeExt {
+
+ /**
+ * Json property type ext.
+ */
+ JSON("json");
+
+ private static final Map<String, PropertyTypeExt> mMap =
+ Collections.unmodifiableMap(initializeMapping());
+ private String displayName;
+
+ PropertyTypeExt(String displayName) {
+
+ this.displayName = displayName;
+ }
+
+ /**
+ * Initialize mapping map.
+ *
+ * @return the map
+ */
+ public static Map<String, PropertyTypeExt> initializeMapping() {
+ Map<String, PropertyTypeExt> typeMap = new HashMap<String, PropertyTypeExt>();
+ for (PropertyTypeExt v : PropertyTypeExt.values()) {
+ typeMap.put(v.displayName, v);
+ }
+ return typeMap;
+ }
+
+ /**
+ * Gets property type by display name.
+ *
+ * @param displayName the display name
+ * @return the property type by display name
+ */
+ public static PropertyTypeExt getPropertyTypeByDisplayName(String displayName) {
+ if (mMap == null) {
+ initializeMapping();
+ }
+ if (mMap.containsKey(displayName)) {
+ return mMap.get(displayName);
+ }
+ return null;
+ }
+
+ /**
+ * Gets display name.
+ *
+ * @return the display name
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+
+}
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/DataModelCloneUtil.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/DataModelCloneUtil.java
new file mode 100644
index 0000000000..e6beb7a3cb
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/DataModelCloneUtil.java
@@ -0,0 +1,103 @@
+/*-
+ * ============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;
+
+
+import org.openecomp.sdc.tosca.datatypes.model.AttributeDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.Constraint;
+import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public class DataModelCloneUtil {
+
+ /**
+ * Clone constraints list.
+ *
+ * @param constraints the constraints
+ * @return the list
+ */
+ public static List<Constraint> cloneConstraints(List<Constraint> constraints) {
+
+ if (constraints == null) {
+ return null;
+ }
+ return constraints.stream().map(Constraint::clone).collect(Collectors.toList());
+ }
+
+ /**
+ * Clone property definitions map.
+ *
+ * @param propertyDefinitions the property definitions
+ * @return the map
+ */
+ public static Map<String, PropertyDefinition> clonePropertyDefinitions(
+ Map<String, PropertyDefinition> propertyDefinitions) {
+
+ if (propertyDefinitions == null) {
+ return null;
+ }
+ Map<String, PropertyDefinition> clonedProperties = new HashMap<>();
+ for (String propertyKey : propertyDefinitions.keySet()) {
+ clonedProperties.put(propertyKey, propertyDefinitions.get(propertyKey).clone());
+ }
+
+ return clonedProperties;
+ }
+
+ /**
+ * Clone attribute definitions map.
+ *
+ * @param attributeDefinitions the attribute definitions
+ * @return the map
+ */
+ public static Map<String, AttributeDefinition> cloneAttributeDefinitions(
+ Map<String, AttributeDefinition> attributeDefinitions) {
+
+ if (attributeDefinitions == null) {
+ return null;
+ }
+ Map<String, AttributeDefinition> clonedAttributeDefinitions = new HashMap<>();
+ for (String attributeKey : attributeDefinitions.keySet()) {
+ clonedAttributeDefinitions.put(attributeKey, attributeDefinitions.get(attributeKey).clone());
+ }
+
+ return clonedAttributeDefinitions;
+ }
+
+ /**
+ * Clone valid source types list.
+ *
+ * @param validSourceTypes the valid source types
+ * @return the list
+ */
+ public static List<String> cloneValidSourceTypes(List<String> validSourceTypes) {
+
+ if (validSourceTypes == null) {
+ return null;
+ }
+
+ return validSourceTypes.stream().collect(Collectors.toList());
+ }
+}
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
new file mode 100644
index 0000000000..7d0bcfeb83
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/YamlUtil.java
@@ -0,0 +1,252 @@
+package org.openecomp.sdc.tosca.services;
+
+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.
+ */
+@SuppressWarnings("unchecked")
+public class YamlUtil {
+
+ /**
+ * 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);
+ //noinspection ResultOfMethodCallIgnored
+ 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) {
+ //noinspection ResultOfMethodCallIgnored
+ yamlObj.toString();
+ return yamlObj;
+ } else {
+ throw new RuntimeException();
+ }
+ } catch (Exception exception) {
+ 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();
+ @SuppressWarnings("unchecked") 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);
+ }
+
+ /**
+ * 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);
+ return loadResult != null;
+ } 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/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml
new file mode 100644
index 0000000000..c1a81460d5
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/_index.yml
@@ -0,0 +1,30 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-heat/_index.yml
+ version: '1.0'
+
+
+imports:
+- openecomp_index:
+ file: ../openecomp/_index.yml
+- nodes:
+ file: nodes.yml
+- groups:
+ file: groups.yml
+ data:
+ file: data.yml \ No newline at end of file
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml
new file mode 100644
index 0000000000..f320a9879b
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml
@@ -0,0 +1,811 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-heat/data.yml
+ version: '1.0'
+
+imports:
+- heat_index:
+ file: _index.yml
+
+data_types:
+
+ org.openecomp.datatypes.heat.network.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: MAC/IP address pairs
+ properties:
+ mac_address:
+ description: MAC address
+ type: string
+ status: SUPPORTED
+ required: false
+ ip_address:
+ description: IP address
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.novaServer.network.PortExtraProperties:
+ derived_from: tosca.datatypes.Root
+ description: Nova server network expand properties for port
+ properties:
+ port_security_enabled:
+ description: Flag to enable/disable port security on the port
+ type: boolean
+ status: SUPPORTED
+ required: false
+ mac_address:
+ description: MAC address to give to this port
+ type: string
+ status: SUPPORTED
+ required: false
+ admin_state_up:
+ description: The administrative state of this port
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ qos_policy:
+ description: The name or ID of QoS policy to attach to this port
+ type: string
+ status: SUPPORTED
+ required: false
+ allowed_address_pairs:
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ required: false
+ binding:vnic_type:
+ description: The vnic type to be bound on the neutron port
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs:
+ derived_from: tosca.datatypes.Root
+ description: source port pairs
+ properties:
+ network_policy_entries_policy_rule_src_ports_start_port:
+ description: Start port
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_src_ports_end_port:
+ description: End port
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Address Pair.
+ properties:
+ address_mode:
+ description: Address Mode.
+ type: string
+ status: SUPPORTED
+ required: false
+ ip:
+ description: IP.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp
+ status: SUPPORTED
+ required: false
+ mac:
+ description: Mac.
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: destination addresses
+ properties:
+ network_policy_entries_policy_rule_dst_addresses_virtual_network:
+ description: Destination addresses Virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.Rule:
+ derived_from: tosca.datatypes.Root
+ description: policy rule
+ properties:
+ network_policy_entries_policy_rule_dst_addresses:
+ description: Destination addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork
+ required: false
+ network_policy_entries_policy_rule_dst_ports:
+ description: Destination ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs
+ required: false
+ network_policy_entries_policy_rule_protocol:
+ description: Protocol
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_src_addresses:
+ description: Source addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork
+ required: false
+ network_policy_entries_policy_rule_direction:
+ description: Direction
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_src_ports:
+ description: Source ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs
+ required: false
+ network_policy_entries_policy_rule_action_list:
+ description: Action list
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule:
+ derived_from: tosca.datatypes.Root
+ description: Rules Pairs
+ properties:
+ remote_group_id:
+ description: The remote group ID to be associated with this security group rule
+ type: string
+ status: SUPPORTED
+ required: false
+ protocol:
+ description: The protocol that is matched by the security group rule
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - tcp
+ - udp
+ - icmp
+ ethertype:
+ description: Ethertype of the traffic
+ type: string
+ status: SUPPORTED
+ default: IPv4
+ required: false
+ constraints:
+ - valid_values:
+ - IPv4
+ - IPv6
+ port_range_max:
+ description: 'The maximum port number in the range that is matched by the
+ security group rule. '
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - in_range:
+ - 0
+ - 65535
+ remote_ip_prefix:
+ description: The remote IP prefix (CIDR) to be associated with this security group rule
+ type: string
+ status: SUPPORTED
+ required: false
+ remote_mode:
+ description: Whether to specify a remote group or a remote IP prefix
+ type: string
+ status: SUPPORTED
+ default: remote_ip_prefix
+ required: false
+ constraints:
+ - valid_values:
+ - remote_ip_prefix
+ - remote_group_id
+ direction:
+ description: The direction in which the security group rule is applied
+ type: string
+ status: SUPPORTED
+ default: ingress
+ required: false
+ constraints:
+ - valid_values:
+ - egress
+ - ingress
+ port_range_min:
+ description: The minimum port number in the range that is matched by the security group rule.
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - in_range:
+ - 0
+ - 65535
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet:
+ derived_from: tosca.datatypes.Root
+ description: Network Ipam Ref Data Subnet
+ properties:
+ network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
+ description: Network ipam refs data ipam subnets ip prefix len
+ type: string
+ status: SUPPORTED
+ required: false
+ network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
+ description: Network ipam refs data ipam subnets ip prefix
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface VLAN Properties.
+ properties:
+ sub_interface_vlan_tag:
+ description: Sub Interface VLAN Tag.
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Address Pair IP.
+ properties:
+ ip_prefix:
+ description: IP Prefix.
+ type: string
+ status: SUPPORTED
+ required: false
+ ip_prefix_len:
+ description: IP Prefix Len.
+ type: integer
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: source addresses
+ properties:
+ network_policy_entries_policy_rule_src_addresses_virtual_network:
+ description: Source addresses Virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList:
+ derived_from: tosca.datatypes.Root
+ description: Action List
+ properties:
+ network_policy_entries_policy_rule_action_list_simple_action:
+ description: Simple Action
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_action_list_apply_service:
+ description: Apply Service
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData:
+ derived_from: tosca.datatypes.Root
+ description: Network Ipam Ref Data
+ properties:
+ network_ipam_refs_data_ipam_subnets:
+ description: Network ipam refs data ipam subnets
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList
+ required: false
+
+ org.openecomp.datatypes.heat.FileInfo:
+ derived_from: tosca.datatypes.Root
+ description: Heat File Info
+ properties:
+ file:
+ description: The required URI string (relative or absolute) which can be used to locate the file
+ type: string
+ status: SUPPORTED
+ required: true
+ file_type:
+ description: The type of the file
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - base
+ - env
+ - volume
+ - network
+
+ org.openecomp.datatypes.heat.network.contrail.InterfaceData:
+ derived_from: tosca.datatypes.Root
+ description: Interface Data
+ properties:
+ static_routes:
+ description: An ordered list of static routes to be added to this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ required: false
+ virtual_network:
+ description: Virtual Network for this interface
+ type: string
+ status: SUPPORTED
+ required: true
+ allowed_address_pairs:
+ description: List of allowed address pair for this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ required: false
+ ip_address:
+ description: IP for this interface
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData:
+ derived_from: tosca.datatypes.Root
+ description: network policy refs data
+ properties:
+ network_policy_refs_data_sequence:
+ description: Network Policy ref data sequence
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs:
+ derived_from: tosca.datatypes.Root
+ description: destination port pairs
+ properties:
+ network_policy_entries_policy_rule_dst_ports_start_port:
+ description: Start port
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries_policy_rule_dst_ports_end_port:
+ description: End port
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.AllocationPool:
+ derived_from: tosca.datatypes.Root
+ description: The start and end addresses for the allocation pool
+ properties:
+ start:
+ description: Start address for the allocation pool
+ type: string
+ status: SUPPORTED
+ required: false
+ end:
+ description: End address for the allocation pool
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.PortPairs:
+ derived_from: tosca.datatypes.Root
+ description: source and destination port pairs
+ properties:
+ start_port:
+ description: Start port
+ type: string
+ status: SUPPORTED
+ required: false
+ end_port:
+ description: End port
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: source and destination addresses
+ properties:
+ virtual_network:
+ description: Virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.RuleList:
+ derived_from: tosca.datatypes.Root
+ description: list of policy rules
+ properties:
+ policy_rule:
+ description: Contrail network rule
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.Rule
+ required: false
+
+ org.openecomp.datatypes.heat.network.contrail.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: Address Pair
+ properties:
+ address_mode:
+ description: Address mode active-active or active-standy
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - active-active
+ - active-standby
+ prefix:
+ description: IP address prefix
+ type: string
+ status: SUPPORTED
+ required: false
+ mac_address:
+ description: Mac address
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Mac Address.
+ properties:
+ mac_address:
+ description: Mac Addresses List.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList:
+ derived_from: tosca.datatypes.Root
+ description: Network Ipam Ref Data Subnet List
+ properties:
+ network_ipam_refs_data_ipam_subnets_subnet:
+ description: Network ipam refs data ipam subnets
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet
+ status: SUPPORTED
+ required: false
+ network_ipam_refs_data_ipam_subnets_addr_from_start:
+ description: Network ipam refs data ipam subnets addr from start
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList:
+ derived_from: tosca.datatypes.Root
+ description: list of policy rules
+ properties:
+ network_policy_entries_policy_rule:
+ description: Contrail network rule
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.Rule
+ required: false
+
+ org.openecomp.datatypes.heat.novaServer.network.AddressInfo:
+ derived_from: tosca.datatypes.network.NetworkInfo
+ description: Network addresses with corresponding port id
+ properties:
+ port_id:
+ description: Port id
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Address Pairs.
+ properties:
+ allowed_address_pair:
+ description: Addresses pair List.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair
+ required: false
+
+ org.openecomp.datatypes.heat.neutron.port.FixedIps:
+ derived_from: tosca.datatypes.Root
+ description: subnet/ip_address
+ properties:
+ subnet:
+ description: Subnet in which to allocate the IP address for this port
+ type: string
+ status: SUPPORTED
+ required: false
+ ip_address:
+ description: IP address desired in the subnet for this port
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Interface Properties.
+ properties:
+ service_interface_type:
+ description: Service Interface Type.
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.subnet.HostRoute:
+ derived_from: tosca.datatypes.Root
+ description: Host route info for the subnet
+ properties:
+ destination:
+ description: The destination for static route
+ type: string
+ status: SUPPORTED
+ required: false
+ nexthop:
+ description: The next hop for the destination
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.network.contrail.port.StaticRoute:
+ derived_from: tosca.datatypes.Root
+ description: static route
+ properties:
+ prefix:
+ description: Route prefix
+ type: string
+ status: SUPPORTED
+ required: false
+ next_hop:
+ description: Next hop
+ type: string
+ status: SUPPORTED
+ required: false
+ next_hop_type:
+ description: Next hop type
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.substitution.SubstitutionFiltering:
+ derived_from: tosca.datatypes.Root
+ description: Substitution Filter
+ properties:
+ substitute_service_template:
+ description: Substitute Service Template
+ type: string
+ status: SUPPORTED
+ required: true
+ index_value:
+ description: Index value of the substitution service template runtime instance
+ type: integer
+ status: SUPPORTED
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ count:
+ description: Count
+ type: string
+ status: SUPPORTED
+ default: 1
+ required: false
+ scaling_enabled:
+ description: Indicates whether service scaling is enabled
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ mandatory:
+ description: Mandatory
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+
+ org.openecomp.datatypes.heat.network.neutron.Subnet:
+ derived_from: tosca.datatypes.Root
+ description: A subnet represents an IP address block that can be used for assigning IP addresses to virtual instances
+ properties:
+ tenant_id:
+ description: The ID of the tenant who owns the network
+ type: string
+ status: SUPPORTED
+ required: false
+ enable_dhcp:
+ description: Set to true if DHCP is enabled and false if DHCP is disabled
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ ipv6_address_mode:
+ description: IPv6 address mode
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ ipv6_ra_mode:
+ description: IPv6 RA (Router Advertisement) mode
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ allocation_pools:
+ description: The start and end addresses for the allocation pools
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AllocationPool
+ required: false
+ subnetpool:
+ description: The name or ID of the subnet pool
+ type: string
+ status: SUPPORTED
+ required: false
+ dns_nameservers:
+ description: A specified set of DNS name servers to be used
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: []
+ required: false
+ host_routes:
+ description: The gateway IP address
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.subnet.HostRoute
+ required: false
+ ip_version:
+ description: The gateway IP address
+ type: integer
+ status: SUPPORTED
+ default: 4
+ required: false
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ name:
+ description: The name of the subnet
+ type: string
+ status: SUPPORTED
+ required: false
+ prefixlen:
+ description: Prefix length for subnet allocation from subnet pool
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ cidr:
+ description: The CIDR
+ type: string
+ status: SUPPORTED
+ required: false
+ gateway_ip:
+ description: The gateway IP address
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrail.network.rule.Rule:
+ derived_from: tosca.datatypes.Root
+ description: policy rule
+ properties:
+ src_ports:
+ description: Source ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ required: false
+ protocol:
+ description: Protocol
+ type: string
+ status: SUPPORTED
+ required: false
+ dst_addresses:
+ description: Destination addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ required: false
+ apply_service:
+ description: Service to apply
+ type: string
+ status: SUPPORTED
+ required: false
+ dst_ports:
+ description: Destination ports
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ required: false
+ src_addresses:
+ description: Source addresses
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ required: false
+ direction:
+ description: Direction
+ type: string
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence:
+ derived_from: tosca.datatypes.Root
+ description: network policy refs data sequence
+ properties:
+ network_policy_refs_data_sequence_major:
+ description: Network Policy ref data sequence Major
+ type: integer
+ status: SUPPORTED
+ required: false
+ network_policy_refs_data_sequence_minor:
+ description: Network Policy ref data sequence Minor
+ type: integer
+ status: SUPPORTED
+ required: false
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml
new file mode 100644
index 0000000000..64cb598ef4
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/groups.yml
@@ -0,0 +1,40 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-heat/groups.yml
+ version: '1.0'
+
+imports:
+- heat_index:
+ file: _index.yml
+
+group_types:
+
+ org.openecomp.groups.heat.HeatStack:
+ derived_from: org.openecomp.groups.VfModule
+ description: Grouped all heat resources which are in the same heat stack
+ properties:
+ heat_file:
+ description: Heat file which associate to this group/heat stack
+ type: string
+ status: SUPPORTED
+ required: true
+ description:
+ description: group description
+ type: string
+ status: SUPPORTED
+ required: true
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml
new file mode 100644
index 0000000000..6fceaac079
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/nodes.yml
@@ -0,0 +1,1221 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-heat/nodes.yml
+ version: '1.0'
+
+imports:
+- heat_index:
+ file: _index.yml
+
+node_types:
+
+ org.openecomp.resource.abstract.nodes.contrail.AbstractSubstitute:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ availability_zone:
+ description: Availability zone to create servers in
+ type: string
+ status: SUPPORTED
+ required: false
+ static_routes_list:
+ description: Static routes enabled
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ required: false
+ availability_zone_enable:
+ description: Indicates availability zone is enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ service_template_name:
+ description: Service template name
+ type: string
+ status: SUPPORTED
+ required: false
+ ordered_interfaces:
+ description: Indicates if service interface are ordered
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ flavor:
+ description: flavor
+ type: string
+ status: SUPPORTED
+ required: false
+ image_name:
+ description: Image name
+ type: string
+ status: SUPPORTED
+ required: true
+ service_type:
+ description: Service type
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - firewall
+ - analyzer
+ - source-nat
+ - loadbalancer
+ service_interface_type_list:
+ description: List of interface types
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ required: true
+ service_instance_name:
+ description: Service instance name
+ type: string
+ status: SUPPORTED
+ required: true
+ interface_list:
+ description: List of interfaces
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.InterfaceData
+ required: false
+ service_mode:
+ description: Service mode
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - transparent
+ - in-network
+ - in-network-nat
+ shared_ip_list:
+ description: Shared ips enabled
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ required: false
+ attributes:
+ tenant_id:
+ description: Tenant id of the Service Instance
+ type: string
+ status: SUPPORTED
+ fq_name:
+ description: The FQ name of the service instance
+ type: string
+ status: SUPPORTED
+ service_template_name:
+ description: Service Template of the Service Instance
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes
+ type: string
+ status: SUPPORTED
+ active_vms:
+ description: Number of service VMs active for this Service Instance
+ type: string
+ status: SUPPORTED
+ service_instance_name:
+ description: The name of the service instance
+ type: string
+ status: SUPPORTED
+ virtual_machines:
+ description: Service VMs for the Service Instance
+ type: string
+ status: SUPPORTED
+ status:
+ description: Status of the service instance
+ type: string
+ status: SUPPORTED
+
+
+ org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ properties:
+ name:
+ description: Virtual Machine Interface name
+ type: string
+ status: SUPPORTED
+ required: false
+ security_group_refs:
+ description: List of security groups.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_network_refs:
+ description: List of virtual networks.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_properties:
+ description: virtual machine interface properties.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ status: SUPPORTED
+ required: false
+ port_tuple_refs:
+ description: List of port tuples.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_mac_addresses:
+ description: List of mac addresses.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_allowed_address_pairs:
+ description: Virtual Machine Interface allowed address pairs.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ status: SUPPORTED
+ required: false
+
+ attributes:
+ fq_name:
+ description: The FQ name of the Virtual Network.
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+
+ org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ entries:
+ description: A symbolic name for this contrail network rule
+ type: org.openecomp.datatypes.heat.contrail.network.rule.RuleList
+ status: SUPPORTED
+ required: false
+ name:
+ description: A symbolic name for this contrail network rule
+ type: string
+ status: SUPPORTED
+ required: false
+ attributes:
+ tenant_id:
+ description: tenant_id
+ type: string
+ status: SUPPORTED
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ rules:
+ description: List of rules
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - network:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.network.Network
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ description:
+ description: Description of the security group
+ type: string
+ status: SUPPORTED
+ required: false
+ name:
+ description: A symbolic name for this security group, which is not required to be unique.
+ type: string
+ status: SUPPORTED
+ required: false
+ rules:
+ description: List of security group rules
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule
+ required: false
+ attributes:
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ requirements:
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ properties:
+ shared:
+ description: Is virtual network shared
+ type: string
+ status: SUPPORTED
+ required: false
+ forwarding_mode:
+ description: forwarding mode of the virtual network
+ type: string
+ status: SUPPORTED
+ required: false
+ external:
+ description: Is virtual network external
+ type: string
+ status: SUPPORTED
+ required: false
+ allow_transit:
+ description: Whether this network should be transitive.
+ type: string
+ status: SUPPORTED
+ required: false
+ flood_unknown_unicast:
+ description: flood L2 packets on network
+ type: string
+ status: SUPPORTED
+ required: false
+ route_targets:
+ description: route targets associated with the virtual network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ required: false
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ subnets_name:
+ description: Subnets name of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets_show:
+ description: Detailed information about each subnet
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.vfc.nodes.heat.nova.Server:
+ derived_from: org.openecomp.resource.vfc.nodes.Compute
+ properties:
+ admin_pass:
+ description: The administrator password for the server
+ type: string
+ status: SUPPORTED
+ required: false
+ availability_zone:
+ description: Availability zone to create servers in
+ type: string
+ status: SUPPORTED
+ required: false
+ image:
+ description: The ID or name of the image to boot with
+ type: string
+ status: SUPPORTED
+ required: false
+ image_update_policy:
+ description: Policy on how to apply an image-id update
+ type: string
+ status: SUPPORTED
+ default: REBUILD
+ required: false
+ constraints:
+ - valid_values:
+ - REBUILD_PRESERVE_EPHEMERAL
+ - REPLACE
+ - REBUILD
+ metadata:
+ description: Arbitrary JSON metadata to store for this server
+ type: json
+ status: SUPPORTED
+ required: false
+ contrail_service_instance_ind:
+ description: Nova server related to service instance indicator
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ user_data_update_policy:
+ description: Policy on how to apply a user_data update
+ type: string
+ status: SUPPORTED
+ default: REPLACE
+ required: false
+ constraints:
+ - valid_values:
+ - REPLACE
+ - IGNORE
+ flavor_update_policy:
+ description: Policy on how to apply a flavor update
+ type: string
+ status: SUPPORTED
+ default: RESIZE
+ required: false
+ constraints:
+ - valid_values:
+ - RESIZE
+ - REPLACE
+ user_data:
+ description: User data script to be executed by cloud-init
+ type: string
+ status: SUPPORTED
+ default: ''
+ required: false
+ flavor:
+ description: The ID or name of the flavor to boot onto
+ type: string
+ status: SUPPORTED
+ required: true
+ key_name:
+ description: Name of keypair to inject into the server
+ type: string
+ status: SUPPORTED
+ required: false
+ reservation_id:
+ description: A UUID for the set of servers being requested
+ type: string
+ status: SUPPORTED
+ required: false
+ security_groups:
+ description: List of security group names or IDs
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: []
+ required: false
+ config_drive:
+ description: enable config drive on the server
+ type: boolean
+ status: SUPPORTED
+ required: false
+ personality:
+ description: A map of files to create/overwrite on the server upon boot
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ software_config_transport:
+ description: How the server should receive the metadata required for software configuration
+ type: string
+ status: SUPPORTED
+ default: POLL_SERVER_CFN
+ required: false
+ constraints:
+ - valid_values:
+ - POLL_SERVER_CFN
+ - POLL_SERVER_HEAT
+ - POLL_TEMP_URL
+ - ZAQAR_MESSAGE
+ user_data_format:
+ description: How the user_data should be formatted for the server
+ type: string
+ status: SUPPORTED
+ default: HEAT_CFNTOOLS
+ required: false
+ constraints:
+ - valid_values:
+ - SOFTWARE_CONFIG
+ - RAW
+ - HEAT_CFNTOOLS
+ diskConfig:
+ description: Control how the disk is partitioned when the server is created
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - AUTO
+ - MANUAL
+ name:
+ description: Server name
+ type: string
+ status: SUPPORTED
+ required: false
+ scheduler_hints:
+ description: Arbitrary key-value pairs specified by the client to help boot a server
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ attributes:
+ accessIPv4:
+ description: The manually assigned alternative public IPv4 address of the server
+ type: string
+ status: SUPPORTED
+ addresses:
+ description: A dict of all network addresses with corresponding port_id
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+ accessIPv6:
+ description: The manually assigned alternative public IPv6 address of the server
+ type: string
+ status: SUPPORTED
+ instance_name:
+ description: AWS compatible instance name
+ type: string
+ status: SUPPORTED
+ name:
+ description: Name of the server
+ type: string
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ console_urls:
+ description: URLs of servers consoles
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.resource.vfc.rules.nodes.heat.network.contrailV2.NetworkRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ name:
+ description: A symbolic name for this contrail v2 network rule
+ type: string
+ status: SUPPORTED
+ required: false
+ network_policy_entries:
+ description: A symbolic name for this contrail v2 network rule
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList
+ status: SUPPORTED
+ required: false
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ requirements:
+ - network:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.network.Network
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.nodes.heat.network.neutron.Port:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ properties:
+ port_security_enabled:
+ description: Flag to enable/disable port security on the network
+ type: boolean
+ status: SUPPORTED
+ required: false
+ device_id:
+ description: Device ID of this port
+ type: string
+ status: SUPPORTED
+ required: false
+ qos_policy:
+ description: The name or ID of QoS policy to attach to this network
+ type: string
+ status: SUPPORTED
+ required: false
+ allowed_address_pairs:
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ required: false
+ binding:vnic_type:
+ description: The vnic type to be bound on the neutron port
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ device_owner:
+ description: Name of the network owning the port
+ type: string
+ status: SUPPORTED
+ required: false
+ network:
+ description: Network this port belongs to
+ type: string
+ status: SUPPORTED
+ required: false
+ replacement_policy:
+ description: Policy on how to respond to a stack-update for this resource
+ type: string
+ status: SUPPORTED
+ default: AUTO
+ required: false
+ constraints:
+ - valid_values:
+ - REPLACE_ALWAYS
+ - AUTO
+ security_groups:
+ description: List of security group names or IDs
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ fixed_ips:
+ description: Desired IPs for this port
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ required: false
+ mac_address:
+ description: MAC address to give to this port
+ type: string
+ status: SUPPORTED
+ required: false
+ admin_state_up:
+ description: A boolean value specifying the administrative status of the network
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ name:
+ description: A symbolic name for this port
+ type: string
+ status: SUPPORTED
+ required: false
+ attributes:
+ tenant_id:
+ description: Tenant owning the port
+ type: string
+ status: SUPPORTED
+ network_id:
+ description: Unique identifier for the network owning the port
+ type: string
+ status: SUPPORTED
+ qos_policy_id:
+ description: The QoS policy ID attached to this network
+ type: string
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ subnets:
+ description: Subnets of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ status:
+ description: The status of the network
+ type: string
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+
+ org.openecomp.resource.vl.nodes.heat.network.neutron.Net:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ properties:
+ dhcp_agent_ids:
+ description: The IDs of the DHCP agent to schedule the network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ tenant_id:
+ description: The ID of the tenant which will own the network
+ type: string
+ status: SUPPORTED
+ required: false
+ port_security_enabled:
+ description: Flag to enable/disable port security on the network
+ type: boolean
+ status: SUPPORTED
+ required: false
+ shared:
+ description: Whether this network should be shared across all tenants
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ admin_state_up:
+ description: A boolean value specifying the administrative status of the network
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ qos_policy:
+ description: The name or ID of QoS policy to attach to this network
+ type: string
+ status: SUPPORTED
+ required: false
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ required: false
+ value_specs:
+ description: Extra parameters to include in the request
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ default: {}
+ required: false
+ attributes:
+ qos_policy_id:
+ description: The QoS policy ID attached to this network
+ type: string
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ subnets_name:
+ description: Subnets name of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ mtu:
+ description: The maximum transmission unit size(in bytes) for the network
+ type: scalar-unit.size
+ status: SUPPORTED
+ status:
+ description: The status of the network
+ type: string
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.nodes.heat.network.contrail.Port:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ properties:
+ static_routes:
+ description: An ordered list of static routes to be added to this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ required: false
+ virtual_network:
+ description: Virtual Network for this interface
+ type: string
+ status: SUPPORTED
+ required: true
+ static_route:
+ description: Static route enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ allowed_address_pairs:
+ description: List of allowed address pair for this interface
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ required: false
+ shared_ip:
+ description: Shared ip enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ ip_address:
+ description: IP for this interface
+ type: string
+ status: SUPPORTED
+ required: false
+ interface_type:
+ description: Interface type
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.resource.vfc.nodes.heat.contrail.Compute:
+ derived_from: org.openecomp.resource.vfc.nodes.Compute
+ properties:
+ flavor:
+ description: flavor
+ type: string
+ status: SUPPORTED
+ required: false
+ image_name:
+ description: Image name
+ type: string
+ status: SUPPORTED
+ required: true
+ availability_zone:
+ description: Availability zone to create servers in
+ type: string
+ status: SUPPORTED
+ required: false
+ service_type:
+ description: Service type
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - firewall
+ - analyzer
+ - source-nat
+ - loadbalancer
+ availability_zone_enable:
+ description: Indicates availability zone is enabled
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: false
+ service_template_name:
+ description: Service template name
+ type: string
+ status: SUPPORTED
+ required: false
+ service_instance_name:
+ description: Service instance name
+ type: string
+ status: SUPPORTED
+ required: true
+ service_mode:
+ description: Service mode
+ type: string
+ status: SUPPORTED
+ required: true
+ constraints:
+ - valid_values:
+ - transparent
+ - in-network
+ - in-network-nat
+ attributes:
+ tenant_id:
+ description: Tenant id of the VM
+ type: string
+ status: SUPPORTED
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes
+ type: string
+ status: SUPPORTED
+ active_vms:
+ description: Number of active VMs
+ type: string
+ status: SUPPORTED
+ virtual_machines:
+ description: VMs of this compute
+ type: string
+ status: SUPPORTED
+ status:
+ description: status of the compute
+ type: string
+ status: SUPPORTED
+
+
+ org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface:
+ derived_from: org.openecomp.resource.cp.nodes.network.SubInterface
+ properties:
+ virtual_machine_interface_refs:
+ description: List of virtual machine interface.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ name:
+ description: Virtual Machine Sub Interface VLAN name
+ type: string
+ status: SUPPORTED
+ required: false
+ virtual_network_refs:
+ description: List of virtual networks.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ virtual_machine_interface_properties:
+ description: virtual machine interface properties.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties
+ status: SUPPORTED
+ required: false
+ virtual_machine_interface_allowed_address_pairs:
+ description: Virtual Machine Sub Interface allowed address pairs.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ status: SUPPORTED
+ required: false
+ virtual_machine_interface_mac_addresses:
+ description: List of mac addresses.
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress
+ status: SUPPORTED
+ required: false
+ security_group_refs:
+ description: List of security groups.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ port_tuple_refs:
+ description: List of port tuples.
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ attributes:
+ fq_name:
+ description: The FQ name of the Virtual Network.
+ type: string
+ status: SUPPORTED
+ show:
+ description: All attributes.
+ type: string
+ status: SUPPORTED
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.resource.cp.nodes.network.Port
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+
+ org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ properties:
+ network_ipam_refs_data:
+ description: IPAM references Data
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData
+ required: false
+ network_policy_refs_data:
+ description: Policy references data
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData
+ required: false
+ network_ipam_refs:
+ description: IPAM references
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ network_policy_refs:
+ description: Policy references
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ required: false
+ attributes:
+ fq_name:
+ description: fq_name
+ type: string
+ status: SUPPORTED
+ subnets_name:
+ description: Subnets name of this network
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets_show:
+ description: Detailed information about each subnet
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ description: Network related subnets
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.vfc.nodes.heat.cinder.Volume:
+ derived_from: org.openecomp.resource.vfc.nodes.volume
+ properties:
+ availability_zone:
+ description: The availability zone in which the volume will be created
+ type: string
+ status: SUPPORTED
+ required: false
+ image:
+ description: If specified, the name or ID of the image to create the volume from
+ type: string
+ status: SUPPORTED
+ required: false
+ metadata:
+ description: Key/value pairs to associate with the volume
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ volume_type:
+ description: If specified, the type of volume to use, mapping to a specific backend
+ type: string
+ status: SUPPORTED
+ required: false
+ description:
+ description: A description of the volume
+ type: string
+ status: SUPPORTED
+ required: false
+ device_type:
+ description: Device type
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - cdrom
+ - disk
+ disk_bus:
+ description: 'Bus of the device: hypervisor driver chooses a suitable default
+ if omitted'
+ type: string
+ status: SUPPORTED
+ required: false
+ constraints:
+ - valid_values:
+ - ide
+ - lame_bus
+ - scsi
+ - usb
+ - virtio
+ backup_id:
+ description: If specified, the backup to create the volume from
+ type: string
+ status: SUPPORTED
+ required: false
+ source_volid:
+ description: If specified, the volume to use as source
+ type: string
+ status: SUPPORTED
+ required: false
+ boot_index:
+ description: Integer used for ordering the boot disks
+ type: integer
+ status: SUPPORTED
+ required: false
+ size:
+ description: The requested storage size (default unit is MB)
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: false
+ constraints:
+ - greater_or_equal: 1 GB
+ read_only:
+ description: Enables or disables read-only access mode of volume
+ type: boolean
+ status: SUPPORTED
+ required: false
+ name:
+ description: A name used to distinguish the volume
+ type: string
+ status: SUPPORTED
+ required: false
+ scheduler_hints:
+ description: Arbitrary key-value pairs specified by the client to help the Cinder scheduler creating a volume
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ required: false
+ swap_size:
+ description: The size of the swap, in MB
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: false
+ delete_on_termination:
+ description: Indicate whether the volume should be deleted when the server is terminated
+ type: boolean
+ status: SUPPORTED
+ required: false
+ multiattach:
+ description: Whether allow the volume to be attached more than once
+ type: boolean
+ status: SUPPORTED
+ required: false
+ attributes:
+ display_description:
+ description: Description of the volume
+ type: string
+ status: SUPPORTED
+ attachments:
+ description: The list of attachments of the volume
+ type: string
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ encrypted:
+ description: Boolean indicating if the volume is encrypted or not
+ type: boolean
+ status: SUPPORTED
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+ created_at:
+ description: The timestamp indicating volume creation
+ type: timestamp
+ status: SUPPORTED
+ display_name:
+ description: Name of the volume
+ type: string
+ status: SUPPORTED
+ metadata_values:
+ description: Key/value pairs associated with the volume in raw dict form
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ bootable:
+ description: Boolean indicating if the volume can be booted or not
+ type: boolean
+ status: SUPPORTED
+ status:
+ description: The current status of the volume
+ type: string
+ status: SUPPORTED
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml
new file mode 100644
index 0000000000..29057f4556
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/_index.yml
@@ -0,0 +1,31 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-inventory/_index.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: ../openecomp/_index.yml
+- nodes:
+ file: nodes.yml
+- capabilities:
+ file: capabilities.yml
+- data:
+ file: data.yml
+- relationships:
+ file: relationships.yml \ No newline at end of file
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml
new file mode 100644
index 0000000000..d1e9dfefae
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/capabilities.yml
@@ -0,0 +1,85 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-inventory/capabilities.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+capability_types:
+
+ org.openecomp.capabilities.inventory.Multiuse:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Bindable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Composite:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Belonging:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Attachment:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Applicable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Existable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Locates:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Linkable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Node:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Container:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Composeable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Allot:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Origin:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
+
+ org.openecomp.capabilities.inventory.Bridgeable:
+ derived_from: tosca.capabilities.Node
+ description: Auto-generated from OXM.
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml
new file mode 100644
index 0000000000..bc245a9387
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/data.yml
@@ -0,0 +1,209 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-inventory/data.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+
+data_types:
+
+ org.openecomp.datatypes.inventory.CloudInfrastructure:
+ description: Namespace for cloud infrastructure.
+ attributes:
+ complexes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ annotations:
+ max_query_depth: 0
+ cloud_regions:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ annotations:
+ max_query_depth: 0
+ network_profiles:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.NetworkProfile
+ pservers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ annotations:
+ max_query_depth: 0
+ virtual_data_centers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+
+ org.openecomp.datatypes.inventory.RelatedToProperty:
+ attributes:
+ property_key:
+ description: Key part of a key/value pair
+ type: string
+ property_value:
+ description: Value part of a key/value pair
+ type: string
+
+ org.openecomp.datatypes.inventory.Network:
+ description: Namespace for network inventory resources.
+ attributes:
+ logical_links:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.LogicalLink
+ site_pair_sets:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.SitePairSet
+ vpn_bindings:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.VpnBinding
+ vpls_pes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.VplsPe
+ multicast_configurations:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.MulticastConfiguration
+ vces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Vce
+ vpes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Vpe
+ vnfcs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Vnfc
+ l3_networks:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.L3Network
+ network_policies:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.NetworkPolicy
+ generic_vnfs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.GenericVnf
+ annotations:
+ max_query_depth: 0
+ lag_links:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.LagLink
+ newvces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Newvce
+ pnfs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Pnf
+ annotations:
+ max_query_depth: 0
+ physical_links:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.PhysicalLink
+ annotations:
+ max_query_depth: 0
+ ipsec_configurations:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.IpsecConfiguration
+ route_table_references:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.RouteTableReference
+ instance_groups:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.InstanceGroup
+ zones:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.network.Zone
+
+ org.openecomp.datatypes.inventory.Relationship:
+ attributes:
+ related_to:
+ description: A keyword provided by A&AI to indicate type of node.
+ type: string
+ related_link:
+ description: URL to the object in A&AI.
+ type: string
+ relationship_data:
+ type: org.openecomp.datatypes.inventory.RelationshipData
+ occurrences:
+ - 0
+ - UNBOUNDED
+ related_to_property:
+ type: org.openecomp.datatypes.inventory.RelatedToProperty
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.datatypes.inventory.Business:
+ description: Namespace for business related constructs
+ attributes:
+ connectors:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.business.Connector
+ customers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.business.Customer
+ annotations:
+ max_query_depth: 0
+
+ org.openecomp.datatypes.inventory.AzAndDvsSwitches:
+ attributes:
+ dvs_switches:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.DvsSwitch
+ availability_zone:
+ type: org.openecomp.nodes.inventory.AvailabilityZone
+
+ org.openecomp.datatypes.inventory.RelationshipData:
+ attributes:
+ relationship_key:
+ description: A keyword provided by A&AI to indicate an attribute.
+ type: string
+ relationship_value:
+ description: Value of the attribute.
+ type: string
+
+ org.openecomp.datatypes.inventory.LicenseManagement:
+ attributes:
+ license_key_resources:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.license.management.LicenseKeyResource
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml
new file mode 100644
index 0000000000..ee94cc6363
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/nodes.yml
@@ -0,0 +1,5148 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-inventory/nodes.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+node_types:
+
+ org.openecomp.nodes.inventory.LagInterface:
+ description: Link aggregate interface
+ attributes:
+ interface_name:
+ description: Name that identifies the link aggregate interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ interface_description:
+ description: Human friendly text regarding this interface.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ interface_id:
+ description: ID of interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ interface_role:
+ description: Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - lag_link:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.nodes.inventory.network.LagLink
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - p_interface:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.PInterface
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - pserver:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpls_pe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.VplsPe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter:
+ description: Virtual organization of cloud infrastructure elements in a data center context
+ attributes:
+ vdc_id:
+ description: Unique ID of the vdc
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vdc_name:
+ description: Name of the virtual data center
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ connector:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.business.Connector
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+
+ org.openecomp.nodes.inventory.network.Pnf:
+ description: PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an OPENECOMP node or uCPE.
+ attributes:
+ pnf_name:
+ description: unique name of Physical Network Function.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ pnf_name2:
+ description: name of Physical Network Function.
+ type: string
+ pnf_name2_source:
+ description: source of name2
+ type: string
+ pnf_id:
+ description: id of pnf
+ type: string
+ equip_type:
+ description: Equipment type. Source of truth should define valid values.
+ type: string
+ equip_vendor:
+ description: Equipment vendor. Source of truth should define valid values.
+ type: string
+ equip_model:
+ description: Equipment model. Source of truth should define valid values.
+ type: string
+ management_option:
+ description: identifier of managed by OPENECOMP or customer
+ type: string
+ ipaddress_v4_oam:
+ description: ipv4-oam-address with new naming convention for IP addresses
+ type: string
+ sw_version:
+ description: sw-version is the version of SW for the hosted application on the PNF.
+ type: string
+ in_maint:
+ description: Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ frame_id:
+ description: ID of the physical frame (relay rack) where pnf is installed.
+ type: string
+ serial_number:
+ description: Serial number of the device
+ type: string
+ ipaddress_v4_loopback_0:
+ description: IPV4 Loopback 0 address
+ type: string
+ ipaddress_v6_loopback_0:
+ description: IPV6 Loopback 0 address
+ type: string
+ ipaddress_v4_aim:
+ description: IPV4 AIM address
+ type: string
+ ipaddress_v6_aim:
+ description: IPV6 AIM address
+ type: string
+ ipaddress_v6_oam:
+ description: IPV6 OAM address
+ type: string
+ inv_status:
+ description: CANOPI's inventory status. Only set with values exactly as defined by CANOPI.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ prov_status:
+ description: Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]
+ type: string
+ nf_role:
+ description: Nf Role is the role performed by this instance in the network.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ p_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ capabilities:
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Bridgeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Locates
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - zone:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Zone
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.network.InstanceGroup:
+ description: General mechanism for grouping instances
+ attributes:
+ id:
+ description: Instance Group ID, UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ description:
+ description: Descriptive text to help identify the usage of this instance-group
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ type:
+ description: Only valid value today is lower case ha for high availability
+ type: string
+ annotations:
+ index:
+ - inventory
+ sub_type:
+ description: Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ pnf:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Pnf
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+
+ org.openecomp.nodes.inventory.LInterface:
+ description: Logical interfaces, e.g., a vnic.
+ attributes:
+ interface_name:
+ description: Name given to the interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ interface_role:
+ description: E.g., CUSTOMER, UPLINK, etc.
+ type: string
+ v6_wan_link_ip:
+ description: Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.
+ type: string
+ selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ interface_id:
+ description: ID of interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ macaddr:
+ description: MAC address for the interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ network_name:
+ description: Name of the network
+ type: string
+ annotations:
+ index:
+ - inventory
+ management_option:
+ description: Whether A&AI should be managing this interface of not. Could have value like CUSTOMER
+ type: string
+ interface_description:
+ description: Human friendly text regarding this interface.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ vlans:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Vlan
+ sriov_vfs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.SriovVf
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ sriov_vf:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.SriovVf
+ requirements:
+ - generic_vnf:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - lag_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LagInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - linking:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - newvce:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Newvce
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - p_interface:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.PInterface
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vserver:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.Vlan:
+ description: Definition of vlan
+ attributes:
+ vlan_interface:
+ description: String that identifies the interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vlan_id_inner:
+ description: Inner VLAN tag
+ type: long
+ annotations:
+ index:
+ - inventory
+ vlan_id_outer:
+ description: Outer VLAN tag
+ type: long
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ vlan_description:
+ description: Used to describe (the service associated with) the vlan
+ type: string
+ backdoor_connection:
+ description: Whether customer is going to use this VLAN for backdoor connection to another customer premise device.
+ type: string
+ vpn_id:
+ description: This indicates the customers VPN ID associated with this vlan
+ type: string
+ annotations:
+ unique:
+ - inventory
+ index:
+ - inventory
+ orchestration_status:
+ description: Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Allot
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ requirements:
+ - logical_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - multicast_configuration:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.MulticastConfiguration
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Vserver:
+ description: Virtual Servers, aka virtual machine or VM.
+ attributes:
+ vserver_id:
+ description: Unique identifier for this vserver relative to its tenant
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ vserver_name:
+ description: Name of vserver
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vserver_name2:
+ description: Alternative name of vserver
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ vserver_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ in_maint:
+ description: Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ is_closed_loop_disabled:
+ description: Used to indicate whether closed loop function is enabled on this node
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ volumes:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Volume
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ vce:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vce
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ vnfc:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vnfc
+ vpe:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vpe
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - tenant:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Tenant
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - flavor:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Flavor
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - image:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Image
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - pserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - 1
+ - snapshot:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Snapshot
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - volume:
+ capability: org.openecomp.capabilities.inventory.Attachment
+ node: org.openecomp.nodes.inventory.Volume
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.VolumeGroup:
+ description: Persistent block-level storage.
+ attributes:
+ volume_group_id:
+ description: Unique ID of volume-group.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ volume_group_name:
+ description: Name of the volume group.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ heat_stack_id:
+ description: Heat stack id corresponding to this volume-group
+ type: string
+ annotations:
+ index:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: Orchestration status of this volume-group
+ type: string
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ vf_module_persona_model_customization_id:
+ description: helps relate the volume group to the vf-module whose components will require the volume group
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Node
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ tenant:
+ type: org.openecomp.capabilities.inventory.Node
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.IpsecConfiguration:
+ description: IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C
+ attributes:
+ ipsec_configuration_id:
+ description: UUID of this configuration
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ requested_vig_address_type:
+ description: Indicate the type of VIG server like AVPN, INTERNET, BOTH
+ type: string
+ requested_encryption_strength:
+ description: Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc
+ type: string
+ requested_dmz_type:
+ description: OPENECOMP can offer a shared DMZ or a DMZ specific to a customer
+ type: string
+ shared_dmz_network_address:
+ description: Network address of shared DMZ
+ type: string
+ requested_customer_name:
+ description: If the DMZ is a custom DMZ, this field will indicate the customer information
+ type: string
+ ike_version:
+ description: can be 1 or 2
+ type: string
+ ikev1_authentication:
+ description: Contains values like md5, sha1, sha256, sha384
+ type: string
+ ikev1_encryption:
+ description: Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc
+ type: string
+ ikev1_dh_group:
+ description: Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14
+ type: string
+ ikev1_am_group_id:
+ description: Group name defined in VIG for clients using aggressive mode
+ type: string
+ ikev1_am_password:
+ description: 'pre-shared key for the above group name '
+ type: string
+ ikev1_sa_lifetime:
+ description: Lifetime for IKEv1 SA
+ type: string
+ ipsec_authentication:
+ description: md5, sha1, sha256, sha384
+ type: string
+ ipsec_encryption:
+ description: 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc
+ type: string
+ ipsec_sa_lifetime:
+ description: Life time for IPSec SA
+ type: string
+ ipsec_pfs:
+ description: enable PFS or not
+ type: string
+ xauth_userid:
+ description: user ID for xAuth, sm-user,ucpeHostName,nmteHostName
+ type: string
+ xauth_user_password:
+ description: Encrypted using the Juniper $9$ algorithm
+ type: string
+ dpd_interval:
+ description: The time between DPD probe
+ type: string
+ dpd_frequency:
+ description: Maximum number of DPD before claiming the tunnel is down
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ vig_servers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.VigServer
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ vig_server:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VigServer
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.Pserver:
+ description: Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.
+ attributes:
+ hostname:
+ description: Value from executing hostname on the compute node.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ ptnii_equip_name:
+ description: PTNII name
+ type: string
+ number_of_cpus:
+ description: Number of cpus
+ type: integer
+ disk_in_gigabytes:
+ description: Disk size, in GBs
+ type: integer
+ ram_in_megabytes:
+ description: RAM size, in MBs
+ type: integer
+ equip_type:
+ description: Equipment type. Source of truth should define valid values.
+ type: string
+ equip_vendor:
+ description: Equipment vendor. Source of truth should define valid values.
+ type: string
+ equip_model:
+ description: Equipment model. Source of truth should define valid values.
+ type: string
+ fqdn:
+ description: Fully-qualified domain name
+ type: string
+ pserver_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ ipv4_oam_address:
+ description: Used to configure device, also used for troubleshooting and is IP used for traps generated by device.
+ type: string
+ annotations:
+ search:
+ - inventory
+ serial_number:
+ description: Serial number, may be queried
+ type: string
+ ipaddress_v4_loopback_0:
+ description: IPV4 Loopback 0 address
+ type: string
+ ipaddress_v6_loopback_0:
+ description: IPV6 Loopback 0 address
+ type: string
+ ipaddress_v4_aim:
+ description: IPV4 AIM address
+ type: string
+ ipaddress_v6_aim:
+ description: IPV6 AIM address
+ type: string
+ ipaddress_v6_oam:
+ description: IPV6 OAM address
+ type: string
+ inv_status:
+ description: CANOPI's inventory status. Only set with values exactly as defined by CANOPI.
+ type: string
+ annotations:
+ index:
+ - inventory
+ pserver_id:
+ description: ID of Pserver
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ internet_topology:
+ description: internet topology of Pserver
+ type: string
+ in_maint:
+ description: used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ pserver_name2:
+ description: alternative pserver name
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ purpose:
+ description: purpose of pserver
+ type: string
+ prov_status:
+ description: Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ p_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Bridgeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ vserver:
+ type: org.openecomp.capabilities.inventory.Container
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - 1
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Locates
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - group_assignment:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.GroupAssignment
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - 1
+ - zone:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Zone
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.SriovVf:
+ description: SR-IOV Virtual Function (not to be confused with virtual network function)
+ attributes:
+ pci_id:
+ description: PCI ID used to identify the sriov-vf
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vf_vlan_filter:
+ description: This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.
+ type: string
+ annotations:
+ index:
+ - inventory
+ vf_mac_filter:
+ description: When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.
+ type: string
+ annotations:
+ index:
+ - inventory
+ vf_vlan_strip:
+ description: When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ vf_vlan_anti_spoof_check:
+ description: This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.
+ type: boolean
+ vf_mac_anti_spoof_check:
+ description: This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.
+ type: boolean
+ vf_mirrors:
+ description: This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.
+ type: string
+ vf_broadcast_allow:
+ description: This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM
+ type: boolean
+ vf_unknown_multicast_allow:
+ description: This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM
+ type: boolean
+ vf_unknown_unicast_allow:
+ description: This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM
+ type: boolean
+ vf_insert_stag:
+ description: This option, if set to true, instructs to insert outer tag after traffic comes out of VM.
+ type: boolean
+ vf_link_status:
+ description: This option is used to set the link status. Valid values as of 1607 are on, off, and auto.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ neutron_network_id:
+ description: Neutron network id of the interface
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.AvailabilityZone:
+ description: Availability zone, a collection of compute hosts/pservers
+ attributes:
+ availability_zone_name:
+ description: Name of the availability zone. Unique across a cloud region
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ hypervisor_type:
+ description: Type of hypervisor. Source of truth should define valid values.
+ type: string
+ operational_state:
+ description: State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ ctag_pool:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CtagPool
+ dvs_switch:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.DvsSwitch
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Origin
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ pserver:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ vce:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vce
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.ServiceInstance:
+ description: Instance of a service
+ attributes:
+ service_instance_id:
+ description: Uniquely identifies this instance of a service
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ service_instance_name:
+ description: This field will store a name assigned to the service-instance.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ bandwidth_total:
+ description: Indicates the total bandwidth to be used for this service.
+ type: string
+ bandwidth_up_wan1:
+ description: indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.
+ type: string
+ bandwidth_down_wan1:
+ description: indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.
+ type: string
+ bandwidth_up_wan2:
+ description: indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.
+ type: string
+ bandwidth_down_wan2:
+ description: indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.
+ type: string
+ vhn_portal_url:
+ description: URL customers will use to access the vHN Portal.
+ type: string
+ operational_status:
+ description: Operational status of the service-instance.
+ type: string
+ service_instance_location_id:
+ description: An identifier that customers assign to the location where this service is being used.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ selflink:
+ description: Path to the controller object.
+ type: string
+ orchestration_status:
+ description: Orchestration status of this service.
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ metadata:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Metadatum
+ allotted_resources:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.AllottedResource
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ metadatum:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Metadatum
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - connector:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.business.Connector
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - ctag_assignment:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.CtagAssignment
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - cvlan_tag:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.CvlanTagEntry
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - logical_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - service_instance:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.ServiceInstance
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Composeable
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.ComposedOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - service_subscription:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.ServiceSubscription
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.Newvce:
+ description: This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.
+ attributes:
+ vnf_id2:
+ description: Unique id of VNF, can't use same attribute name right now until we promote this new object
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this VNF by BAU Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational
+ type: string
+ license_key:
+ description: OBSOLETE - do not use
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value, e.g., VPE.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ ipv4_loopback0_address:
+ description: v4 Loopback0 address
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO.
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+
+ org.openecomp.nodes.inventory.Flavor:
+ description: Openstack flavor.
+ attributes:
+ flavor_id:
+ description: Flavor id, expected to be unique across cloud-region.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ flavor_name:
+ description: Flavor name
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ flavor_vcpus:
+ description: Number of CPUs
+ type: integer
+ flavor_ram:
+ description: Amount of memory
+ type: integer
+ flavor_disk:
+ description: Disk space
+ type: integer
+ flavor_ephemeral:
+ description: Amount of ephemeral disk space
+ type: integer
+ flavor_swap:
+ description: amount of swap space allocation
+ type: string
+ flavor_is_public:
+ description: whether flavor is available to all users or private to the tenant it was created in.
+ type: boolean
+ flavor_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ flavor_disabled:
+ description: Boolean as to whether this flavor is no longer enabled
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vserver:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.DvsSwitch:
+ description: 'Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI
+ needs to receive this data from the PO deployment team and administer it using
+ the provisioningTool.sh into A&AI. '
+ attributes:
+ switch_name:
+ description: DVS switch name
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ vcenter_url:
+ description: URL used to reach the vcenter
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Entitlement:
+ description: Metadata for entitlement group.
+ attributes:
+ group_uuid:
+ description: Unique ID for the entitlement group the resource comes from, should be uuid.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_uuid:
+ description: 'Unique ID of an entitlement resource. '
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.PInterface:
+ description: Physical interface (e.g., nic)
+ attributes:
+ interface_name:
+ description: Name that identifies the physical interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ port_description:
+ description: Nature of the services and connectivity on this port.
+ type: string
+ equipment_identifier:
+ description: CLEI or other specification for p-interface hardware.
+ type: string
+ interface_role:
+ description: Role specification for p-interface hardware.
+ type: string
+ interface_type:
+ description: Indicates the physical properties of the interface.
+ type: string
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ capabilities:
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - logical_link:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - 1
+ - physical_link:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.nodes.inventory.network.PhysicalLink
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - pserver:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpls_pe:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.nodes.inventory.network.VplsPe
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.LagLink:
+ description: LAG links can connect lag-interfaces
+ attributes:
+ link_name:
+ description: Alphabetical concatenation of lag-interface names
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+
+ org.openecomp.nodes.inventory.Volume:
+ description: Ephemeral Block storage volume.
+ attributes:
+ volume_id:
+ description: Unique ID of block storage volume relative to the vserver.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ volume_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vserver:
+ type: org.openecomp.capabilities.inventory.Attachment
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+
+ org.openecomp.nodes.inventory.network.Zone:
+ description: A zone is a grouping of assets in a location homing to the same connections into the CBB
+ attributes:
+ zone_id:
+ description: Code assigned by OPENECOMP to the zone
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ zone_name:
+ description: English name associated with the zone
+ type: string
+ annotations:
+ summary_property: true
+ design_type:
+ description: Design of zone [Medium/Large�]
+ type: string
+ annotations:
+ index:
+ - inventory
+ zone_context:
+ description: Context of zone [production/test]
+ type: string
+ annotations:
+ index:
+ - inventory
+ status:
+ description: Status of a zone.
+ type: string
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ cloud_region:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ pnf:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Pnf
+ pserver:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.SegmentationAssignment:
+ description: Openstack segmentation assignment.
+ attributes:
+ segmentation_id:
+ description: Route Table Reference id, UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.SitePair:
+ attributes:
+ site_pair_id:
+ description: unique identifier of probe
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ source_ip:
+ description: Prefix address
+ type: string
+ destination_ip:
+ description: Prefix address
+ type: string
+ ip_version:
+ description: ip version, v4, v6
+ type: string
+ destination_hostname:
+ description: Hostname of the destination equipment to which SLAs are measured against.
+ type: string
+ destination_equip_type:
+ description: The type of destinatination equipment. Could be Router, UCPE, etc.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ classes_of_service:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.ClassOfService
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ class_of_service:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ClassOfService
+ requirements:
+ - routing_instance:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.RoutingInstance
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.VplsPe:
+ description: VPLS Provider Edge routers.
+ attributes:
+ equipment_name:
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this VNF by BAU Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value, e.g., VPLS-PE.
+ type: string
+ vlan_id_outer:
+ description: Temporary location for stag to get to VCE
+ type: long
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ p_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ capabilities:
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Locates
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - ctag_pool:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.CtagPool
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Subnet:
+ attributes:
+ subnet_id:
+ description: Subnet ID, should be UUID.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ subnet_name:
+ description: Name associated with the subnet.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ neutron_subnet_id:
+ description: Neutron id of this subnet
+ type: string
+ gateway_address:
+ description: gateway ip address
+ type: string
+ network_start_address:
+ description: network start address
+ type: string
+ cidr_mask:
+ description: cidr mask
+ type: string
+ ip_version:
+ description: ip version
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ dhcp_enabled:
+ description: dhcp enabled
+ type: boolean
+ dhcp_start:
+ description: the start address reserved for use by dhcp
+ type: string
+ dhcp_end:
+ description: the last address reserved for use by dhcp
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.service.design.and.creation.VnfImage:
+ description: Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.
+ attributes:
+ att_uuid:
+ description: Unique ID of this asset
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ application:
+ description: The application that the image instantiates.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_vendor:
+ description: The vendor of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_version:
+ description: The version of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+
+ org.openecomp.nodes.inventory.network.RouteTableReference:
+ description: Openstack route table reference.
+ attributes:
+ route_table_reference_id:
+ description: Route Table Reference id, UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ route_table_reference_fqdn:
+ description: FQDN entry in the route table.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_network:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.L3Network
+
+ org.openecomp.nodes.inventory.License:
+ description: Metadata for license group.
+ attributes:
+ group_uuid:
+ description: Unique ID for the license group the resource belongs to, should be uuid.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_uuid:
+ description: 'Unique ID of a license resource. '
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vpe:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vpe
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.GroupAssignment:
+ description: Openstack group-assignment used to store exclusivity groups (EG).
+ attributes:
+ group_id:
+ description: Group id, expected to be unique across cloud-region.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ group_type:
+ description: Group type - the type of group this instance refers to
+ type: string
+ annotations:
+ index:
+ - inventory
+ group_name:
+ description: Group name - name assigned to the group
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ group_description:
+ description: Group description - description of the group
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ pserver:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ tenant:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.VfModule:
+ description: a deployment unit of VNFCs
+ attributes:
+ vf_module_id:
+ description: Unique ID of vf-module.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ vf_module_name:
+ description: Name of vf-module
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance.
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: orchestration status of this vf-module, mastered by MSO
+ type: string
+ is_base_vf_module:
+ description: used to indicate whether or not this object is base vf module
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ contrail_service_instance_fqdn:
+ description: the Contrail unique ID for a service-instance
+ type: string
+ annotations:
+ index:
+ - inventory
+ module_index:
+ description: the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit
+ type: integer
+ selflink:
+ description: Path to the controller object.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - l3_network:
+ capability: tosca.capabilities.Node
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vnfc:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.Vnfc
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - volume_group:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.VolumeGroup
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - vserver:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Metadatum:
+ description: Key/value pairs
+ attributes:
+ metaname:
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ metaval:
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ requirements:
+ - connector:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.business.Connector
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - image:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Image
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - service_instance:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.ServiceInstance
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.VigServer:
+ description: vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607
+ attributes:
+ vig_address_type:
+ description: indicates whether the VIG is for AVPN or INTERNET
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ ipaddress_v4_vig:
+ description: v4 IP of the vig server
+ type: string
+ occurrences:
+ - 0
+ - UNBOUNDED
+ ipaddress_v6_vig:
+ description: v6 IP of the vig server
+ type: string
+ occurrences:
+ - 0
+ - UNBOUNDED
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - ipsec_configuration:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.IpsecConfiguration
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion:
+ description: cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts OPENECOMP cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use OPENECOMP.
+ attributes:
+ cloud_owner:
+ description: Identifies the vendor and cloud name, e.g., OPENECOMP. First part of composite key should be formatted as vendor-cloudname
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ cloud_region_id:
+ description: Identifier used by the vendor for the region. Second part of composite key
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ cloud_type:
+ description: Type of the cloud (e.g., openstack)
+ type: string
+ annotations:
+ index:
+ - inventory
+ owner_defined_type:
+ description: Cloud-owner defined type indicator (e.g., dcp, lcp)
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ cloud_region_version:
+ description: Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.
+ type: string
+ identity_url:
+ description: URL of the keystone identity service
+ type: string
+ cloud_zone:
+ description: Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.
+ type: string
+ complex_name:
+ description: complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ volume_groups:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.VolumeGroup
+ tenants:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Tenant
+ annotations:
+ max_query_depth: 0
+ flavors:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Flavor
+ group_assignments:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.GroupAssignment
+ snapshots:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Snapshot
+ images:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Image
+ dvs_switches:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.DvsSwitch
+ oam_networks:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.OamNetwork
+ availability_zones:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ availability_zone:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AvailabilityZone
+ dvs_switch:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.DvsSwitch
+ flavor:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Flavor
+ group_assignment:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.GroupAssignment
+ image:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Image
+ oam_network:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.OamNetwork
+ snapshot:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Snapshot
+ tenant:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ volume_group:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VolumeGroup
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ pserver:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - zone:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Zone
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+
+ org.openecomp.nodes.inventory.network.Vpe:
+ derived_from: org.openecomp.nodes.inventory.Vnf
+ description: Relationship-list must include related to info for complex.
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ service_id:
+ description: Unique identifier of service. Does not map strictly to ASDC services. SOON TO BE DEPRECATED
+ type: string
+ annotations:
+ index:
+ - inventory
+ regional_resource_zone:
+ description: Regional way of organizing pservers, source of truth should define values
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational
+ type: string
+ license_key:
+ description: OBSOLETE - do not use. See child relationships.
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).
+ type: string
+ ipv4_oam_gateway_address_prefix_length:
+ description: Prefix length for oam-address
+ type: integer
+ ipv4_oam_gateway_address:
+ description: Gateway address
+ type: string
+ v4_loopback0_ip_address:
+ description: Loopback0 address
+ type: string
+ vlan_id_outer:
+ description: Temporary location for stag to get to VCE
+ type: long
+ as_number:
+ description: as-number of the VPE
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ summary_status:
+ description: details regarding the vpe operation, PLEASE DISCONTINUE USE OF THIS FIELD.
+ type: string
+ encrypted_access_flag:
+ description: indicates whether vpe access uses SSH
+ type: boolean
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ licenses:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.License
+ entitlements:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Entitlement
+ capabilities:
+ entitlement:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Entitlement
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ license:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.License
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ requirements:
+ - ctag_pool:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.CtagPool
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Image:
+ description: Openstack image.
+ attributes:
+ image_id:
+ description: Image id, expected to be unique across cloud region
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ image_name:
+ description: Image name
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ image_architecture:
+ description: Operating system architecture.
+ type: string
+ image_os_distro:
+ description: The common name of the operating system distribution in lowercase
+ type: string
+ image_os_version:
+ description: The operating system version as specified by the distributor.
+ type: string
+ application:
+ description: The application that the image instantiates.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_vendor:
+ description: The vendor of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_version:
+ description: The version of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ image_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ metadata:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Metadatum
+ capabilities:
+ metadatum:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Metadatum
+ vserver:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.GenericVnf:
+ derived_from: org.openecomp.nodes.inventory.Vnf
+ description: General purpose VNF
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ service_id:
+ description: Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED
+ type: string
+ annotations:
+ index:
+ - inventory
+ regional_resource_zone:
+ description: Regional way of organizing pservers, source of truth should define values
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.
+ type: string
+ license_key:
+ description: OBSOLETE - do not use
+ type: string
+ equipment_role:
+ description: Client should send valid enumerated value
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, used by MSO.
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ management_option:
+ description: identifier of managed by OPENECOMP or customer
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.
+ type: string
+ ipv4_loopback0_address:
+ description: v4 Loopback0 address
+ type: string
+ nm_lan_v6_address:
+ description: v6 Loopback address
+ type: string
+ management_v6_address:
+ description: v6 management address
+ type: string
+ vcpu:
+ description: number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: long
+ vcpu_units:
+ description: units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: string
+ vmemory:
+ description: number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: long
+ vmemory_units:
+ description: units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: string
+ vdisk:
+ description: number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE
+ type: long
+ vdisk_units:
+ description: units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE
+ type: string
+ in_maint:
+ description: used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ is_closed_loop_disabled:
+ description: used to indicate whether closed loop function is enabled on this node
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ summary_status:
+ description: details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.
+ type: string
+ encrypted_access_flag:
+ description: indicates whether generic-vnf access uses SSH
+ type: boolean
+ entitlement_assignment_group_uuid:
+ description: UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.
+ type: string
+ entitlement_resource_uuid:
+ description: UUID of the specific entitlement resource. OBSOLETE - See child relationships.
+ type: string
+ license_assignment_group_uuid:
+ description: UUID of the license assignment group. OBSOLETE - See child relationships.
+ type: string
+ license_key_uuid:
+ description: UUID of the actual license resource. OBSOLETE - See child relationships.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ as_number:
+ description: as-number of the VNF
+ type: string
+ regional_resource_subzone:
+ description: represents sub zone of the rr plane
+ type: string
+ selflink:
+ description: Path to the controller object.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ l_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LInterface
+ lag_interfaces:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.LagInterface
+ vf_modules:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.VfModule
+ licenses:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.License
+ entitlements:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Entitlement
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Allot
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ entitlement:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Entitlement
+ lag_interface:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LagInterface
+ license:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.License
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Bindable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Bridgeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ network_profile:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.NetworkProfile
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ site_pair_set:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.SitePairSet
+ requirements:
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Origin
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - ipsec_configuration:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.IpsecConfiguration
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - 1
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - license_key_resource:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.license.management.LicenseKeyResource
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_data_center:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vnfc:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.Vnfc
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vnf_image:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.service.design.and.creation.VnfImage
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - volume_group:
+ capability: tosca.capabilities.Node
+ node: org.openecomp.nodes.inventory.VolumeGroup
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.Snapshot:
+ description: Openstack snapshot
+ attributes:
+ snapshot_id:
+ description: Snapshot id, this is the key UUID assoc associated in glance with the snapshots.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ snapshot_name:
+ description: Snapshot name
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ snapshot_architecture:
+ description: Operating system architecture
+ type: string
+ snapshot_os_distro:
+ description: The common name of the operating system distribution in lowercase
+ type: string
+ snapshot_os_version:
+ description: The operating system version as specified by the distributor.
+ type: string
+ application:
+ description: The application that the image instantiates.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_vendor:
+ description: The vendor of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ application_version:
+ description: The version of the application.
+ type: string
+ annotations:
+ index:
+ - inventory
+ snapshot_selflink:
+ description: URL to endpoint where AAI can get more details
+ type: string
+ prev_snapshot_id:
+ description: This field contains the UUID of the previous snapshot (if any).
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vserver:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.LogicalLink:
+ description: Logical links generally connect l-interfaces but are used to express logical connectivity between two points
+ attributes:
+ link_name:
+ description: e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ link_type:
+ description: Type of logical link, e.g., evc
+ type: string
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ ip_version:
+ description: v4, v6, or ds for dual stack (should be openecomp-ip-version)
+ type: string
+ routing_protocol:
+ description: For example, static or BGP
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_status:
+ description: Indication of operational status of the logical link.
+ type: string
+ prov_status:
+ description: Trigger for operational monitoring of this VNF by BAU Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ link_role:
+ description: Indication of the network use of the logical link.
+ type: string
+ link_name2:
+ description: Alias or alternate name (CLCI or D1 name).
+ type: string
+ link_id:
+ description: UUID of the logical-link, SDNC generates this.
+ type: string
+ annotations:
+ unique:
+ - inventory
+ index:
+ - inventory
+ circuit_id:
+ description: Circuit id
+ type: string
+ annotations:
+ index:
+ - inventory
+ purpose:
+ description: Reason for this entity, role it is playing
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.LInterface
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ vlan:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vlan
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Bridgeable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.BridgedTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - lag_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LagLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - logical_link:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.LogicalLink
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pnf:
+ capability: org.openecomp.capabilities.inventory.Bridgeable
+ node: org.openecomp.nodes.inventory.network.Pnf
+ relationship: org.openecomp.relationships.inventory.BridgedTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - pserver:
+ capability: org.openecomp.capabilities.inventory.Bridgeable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ relationship: org.openecomp.relationships.inventory.BridgedTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_data_center:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vpn_binding:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.VpnBinding
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.NetworkPolicy:
+ attributes:
+ network_policy_id:
+ description: UUID representing unique key to this instance
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ network_policy_fqdn:
+ description: Contrail FQDN for the policy
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ heat_stack_id:
+ description: ID for the openStack Heat instance
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_network:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.L3Network
+
+ org.openecomp.nodes.inventory.TunnelXconnect:
+ description: Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted
+ attributes:
+ id:
+ description: Allotted Resource id UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ bandwidth_up_wan1:
+ description: The WAN uplink bandwidth for WAN1
+ type: string
+ bandwidth_down_wan1:
+ description: The WAN downlink bandwidth for WAN1
+ type: string
+ bandwidth_up_wan2:
+ description: The WAN uplink bandwidth for WAN2
+ type: string
+ bandwidth_down_wan2:
+ description: The WAN downlink bandwidth for WAN2
+ type: string
+ resource_version:
+ description: Concurrency value
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - allotted_resource:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.AllottedResource
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.OamNetwork:
+ description: 'OAM network, to be deprecated shortly. Do not use for new purposes. '
+ attributes:
+ network_uuid:
+ description: UUID of the network. Unique across a cloud-region
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ network_name:
+ description: Name of the network.
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ cvlan_tag:
+ description: cvlan-id
+ type: long
+ annotations:
+ index:
+ - inventory
+ ipv4_oam_gateway_address:
+ description: Used for VNF firewall rule so customer cannot send customer traffic over this oam network
+ type: string
+ ipv4_oam_gateway_address_prefix_length:
+ description: Used for VNF firewall rule so customer cannot send customer traffic over this oam network
+ type: integer
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.SitePairSet:
+ description: Set of instances for probes used to measure service level agreements
+ attributes:
+ site_pair_set_id:
+ description: Unique id of site pair set.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ routing_instances:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.RoutingInstance
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ routing_instance:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.RoutingInstance
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.CvlanTagEntry:
+ attributes:
+ cvlan_tag:
+ description: See mis-na-virtualization-platform.yang
+ type: long
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - port_group:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.PortGroup
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.ClassOfService:
+ attributes:
+ cos:
+ description: unique identifier of probe
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ probe_id:
+ description: identifier of probe
+ type: string
+ probe_type:
+ description: type of probe
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - site_pair:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.SitePair
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.CtagPool:
+ description: A collection of C tags (vlan tags) grouped for a specific purpose.
+ attributes:
+ target_pe:
+ description: The Target provider edge router
+ type: string
+ annotations:
+ primary_id: true
+ availability_zone_name:
+ description: Name of the availability zone
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ ctag_pool_purpose:
+ description: Describes what the intended purpose of this pool is.
+ type: string
+ ctag_values:
+ description: Comma separated list of ctags
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vpe:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Vpe
+ vpls_pe:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.VplsPe
+ requirements:
+ - complex:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.MulticastConfiguration:
+ attributes:
+ multicast_configuration_id:
+ description: Unique id of multicast configuration.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ multicast_protocol:
+ description: protocol of multicast configuration
+ type: string
+ rp_type:
+ description: rp type of multicast configuration
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ vlan:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vlan
+
+ org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList:
+ description: IPv4 Address Range
+ attributes:
+ l3_interface_ipv4_address:
+ description: IP address
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ l3_interface_ipv4_prefix_length:
+ description: Prefix length, 32 for single address
+ type: long
+ vlan_id_inner:
+ description: Inner VLAN tag
+ type: long
+ annotations:
+ index:
+ - inventory
+ vlan_id_outer:
+ description: Outer VLAN tag
+ type: long
+ is_floating:
+ description: Indicator of fixed or floating address
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ neutron_network_id:
+ description: Neutron network id of the interface that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ neutron_subnet_id:
+ description: Neutron id of subnet that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - subnet:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.Subnet
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.VpnBinding:
+ description: VPN binding
+ attributes:
+ vpn_id:
+ description: VPN ID, globally unique within A&AI
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vpn_name:
+ description: VPN Name
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ global_route_target:
+ description: Number used to identify a VPN, globally unique in the network
+ type: string
+ annotations:
+ index:
+ - inventory
+ vpn_platform:
+ description: the platform associated with the VPN example AVPN, Mobility
+ type: string
+ vpn_type:
+ description: Type of the vpn, should be taken from enumerated/valid values
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ route_distinguisher:
+ description: Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.
+ type: string
+ route_target_role:
+ description: Role assigned to this route target
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ description: l3-networks relate to vpn-bindings
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ l3_network:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.L3Network
+ logical_link:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.LogicalLink
+
+ org.openecomp.nodes.inventory.Vnf:
+ description: Abstract vnf class
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+
+ org.openecomp.nodes.inventory.Tenant:
+ description: Openstack tenant
+ attributes:
+ tenant_id:
+ description: Unique id relative to the cloud-region.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ tenant_name:
+ description: Readable name of tenant
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ vservers:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Vserver
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_subscription:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceSubscription
+ vserver:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Vserver
+ requirements:
+ - cloud_region:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - group_assignment:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.GroupAssignment
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - volume_group:
+ capability: tosca.capabilities.Node
+ node: org.openecomp.nodes.inventory.VolumeGroup
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.business.Customer:
+ description: customer identifiers to provide linkage back to BSS information.
+ attributes:
+ global_customer_id:
+ description: Global customer id used across OPENECOMP to uniquely identify customer.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ subscriber_name:
+ description: Subscriber name, an alternate way to retrieve a customer.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ subscriber_type:
+ description: Subscriber type, a way to provide VID with only the INFRA customers.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ service_subscriptions:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.ServiceSubscription
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_subscription:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceSubscription
+
+ org.openecomp.nodes.inventory.AllottedResource:
+ description: Represents a slice or partial piece of a resource that gets separately allotted
+ attributes:
+ id:
+ description: Allotted Resource id UUID assigned to this instance.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ description:
+ description: The descriptive information assigned to this allotted resource instance
+ type: string
+ annotations:
+ summary_property: true
+ selflink:
+ description: Link back to more information in the controller
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Concurrency value
+ type: string
+ tunnel_xconnects:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.TunnelXconnect
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ tunnel_xconnect:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.TunnelXconnect
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Allot
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.PartOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - instance_group:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.InstanceGroup
+ relationship: org.openecomp.relationships.inventory.MemberOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Allot
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.PartOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Allot
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.PartOf
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - service_instance:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.ServiceInstance
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.Complex:
+ description: Collection of physical locations that can house cloud-regions.
+ attributes:
+ physical_location_id:
+ description: Unique identifier for physical location, e.g., CLLI
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ data_center_code:
+ description: Data center code which can be an alternate way to identify a complex
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ complex_name:
+ description: Gamma complex name for LCP instance.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ identity_url:
+ description: URL of the keystone identity service
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ physical_location_type:
+ description: Type, e.g., central office, data center.
+ type: string
+ street1:
+ type: string
+ annotations:
+ search:
+ - inventory
+ street2:
+ type: string
+ annotations:
+ search:
+ - inventory
+ city:
+ type: string
+ state:
+ type: string
+ postal_code:
+ type: string
+ annotations:
+ search:
+ - inventory
+ country:
+ type: string
+ region:
+ type: string
+ latitude:
+ type: string
+ longitude:
+ type: string
+ elevation:
+ type: string
+ lata:
+ type: string
+ ctag_pools:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.CtagPool
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ availability_zone:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AvailabilityZone
+ cloud_region:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ ctag_pool:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CtagPool
+ oam_network:
+ type: org.openecomp.capabilities.inventory.Applicable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.OamNetwork
+ pnf:
+ type: org.openecomp.capabilities.inventory.Locates
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Pnf
+ pserver:
+ type: org.openecomp.capabilities.inventory.Locates
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Pserver
+ volume_group:
+ type: org.openecomp.capabilities.inventory.Existable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VolumeGroup
+ vpls_pe:
+ type: org.openecomp.capabilities.inventory.Locates
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.VplsPe
+ zone:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.Zone
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.CtagAssignment:
+ attributes:
+ vlan_id_inner:
+ description: id.
+ type: long
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.RoutingInstance:
+ attributes:
+ routing_instance_id:
+ description: Unique id of routing instance
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ rpm_owner:
+ description: rpm owner
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ site_pairs:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.SitePair
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ site_pair:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.SitePair
+ requirements:
+ - site_pair_set:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.SitePairSet
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.cloud.infrastructure.NetworkProfile:
+ description: Network profile populated by SDN-GP for SNMP
+ attributes:
+ nm_profile_name:
+ description: Unique name of network profile.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ community_string:
+ description: Encrypted SNMP community string
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - generic_vnf:
+ capability: org.openecomp.capabilities.inventory.Applicable
+ node: org.openecomp.nodes.inventory.network.GenericVnf
+ relationship: org.openecomp.relationships.inventory.AppliesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.Vnfc:
+ attributes:
+ vnfc_name:
+ description: Unique ID of vnfc.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ vnfc_function_code:
+ description: function code
+ type: string
+ annotations:
+ index:
+ - inventory
+ vnfc_type:
+ description: type
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: prov status of this vnfc
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by APP-C
+ type: string
+ ipaddress_v4_oam_vip:
+ description: Oam V4 vip address of this vnfc
+ type: string
+ annotations:
+ index:
+ - inventory
+ in_maint:
+ description: used to indicate whether or not this object is in maintenance mode (maintenance mode = true)
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ is_closed_loop_disabled:
+ description: used to indicate whether closed loop function is enabled on this node
+ type: boolean
+ annotations:
+ index:
+ - inventory
+ group_notation:
+ description: Group notation of VNFC
+ type: string
+ annotations:
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ requirements:
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.Vce:
+ derived_from: org.openecomp.nodes.inventory.Vnf
+ description: Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.
+ attributes:
+ vnf_id:
+ description: Unique id of VNF. This is unique across the graph.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_name:
+ description: Name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ vnf_name2:
+ description: Alternate name of VNF.
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ vnf_type:
+ description: String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as OPENECOMP matures.
+ type: string
+ annotations:
+ index:
+ - inventory
+ service_id:
+ description: Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.
+ type: string
+ annotations:
+ index:
+ - inventory
+ regional_resource_zone:
+ description: Regional way of organizing pservers, source of truth should define values
+ type: string
+ annotations:
+ index:
+ - inventory
+ prov_status:
+ description: Trigger for operational monitoring of this resource by Service Assurance systems.
+ type: string
+ annotations:
+ index:
+ - inventory
+ operational_state:
+ description: Indicator for whether the resource is considered operational
+ type: string
+ license_key:
+ description: OBSOLETE - do not use
+ type: string
+ equipment_role:
+ description: Network role being played by this VNF
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ vpe_id:
+ description: Unique ID of VPE connected to this VCE.
+ type: string
+ annotations:
+ index:
+ - inventory
+ v6_vce_wan_address:
+ description: Valid v6 IP address for the WAN Link on this router. Implied length of /64.
+ type: string
+ ipv4_oam_address:
+ description: Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ ipv4_loopback0_address:
+ description: Loopback0 address
+ type: string
+ entitlement_resource_uuid:
+ description: OBSOLETE - see child relationships
+ type: string
+ port_groups:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.PortGroup
+ licenses:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.License
+ entitlements:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Entitlement
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ entitlement:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Entitlement
+ license:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.License
+ port_group:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PortGroup
+ requirements:
+ - availability_zone:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.AvailabilityZone
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vserver:
+ capability: tosca.capabilities.Container
+ node: org.openecomp.nodes.inventory.Vserver
+ relationship: tosca.relationships.HostedOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.ServiceSubscription:
+ description: Object that group service instances.
+ attributes:
+ service_type:
+ description: Value defined by orchestration to identify this service across OPENECOMP.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ temp_ub_sub_account_id:
+ description: This property will be deleted from A&AI in the near future. Only stop gap solution.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ service_instances:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.ServiceInstance
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - customer:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.business.Customer
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - tenant:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.Tenant
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.PortGroup:
+ description: Used to capture the network interfaces of this VCE
+ attributes:
+ interface_id:
+ description: Unique ID of the interface
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ neutron_network_id:
+ description: Neutron network id of this Interface
+ type: string
+ neutron_network_name:
+ description: Neutron network name of this Interface
+ type: string
+ interface_role:
+ description: Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ port_group_id:
+ description: Unique ID for port group in vmware
+ type: string
+ annotations:
+ index:
+ - inventory
+ port_group_name:
+ description: Likely to duplicate value of neutron network name
+ type: string
+ annotations:
+ summary_property: true
+ switch_name:
+ description: DVS or standard switch name (should be non-null for port groups associated with DVS)
+ type: string
+ annotations:
+ index:
+ - inventory
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ cvlan_tags:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.CvlanTagEntry
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ cvlan_tag:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CvlanTagEntry
+ requirements:
+ - vce:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.network.Vce
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.business.Connector:
+ description: Collection of resource instances used to connect a variety of disparate inventory widgets
+ attributes:
+ resource_instance_id:
+ description: Unique id of resource instance.
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ metadata:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Metadatum
+ capabilities:
+ metadatum:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Metadatum
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ requirements:
+ - virtual_data_center:
+ capability: org.openecomp.capabilities.inventory.Existable
+ node: org.openecomp.nodes.inventory.cloud.infrastructure.VirtualDataCenter
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.nodes.inventory.network.PhysicalLink:
+ description: Collection of physical connections, typically between p-interfaces
+ attributes:
+ link_name:
+ description: e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ search:
+ - inventory
+ speed_value:
+ description: Captures the numeric part of the speed
+ type: string
+ speed_units:
+ description: Captures the units corresponding to the speed
+ type: string
+ circuit_id:
+ description: Circuit it
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ dual_mode:
+ description: Dual access mode (e.g., primary, secondary
+ type: string
+ management_option:
+ description: To provide information on who manages this circuit. A&AI or 3rd party transport provider
+ type: string
+ service_provider_name:
+ description: Name of the service Provider on this link.
+ type: string
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ p_interface:
+ type: org.openecomp.capabilities.inventory.Linkable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.PInterface
+
+ org.openecomp.nodes.inventory.license.management.LicenseKeyResource:
+ description: 'OBSOLETE OBJECT: do not use'
+ attributes:
+ att_uuid:
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ assignment_type:
+ type: string
+ assignment_status:
+ type: string
+ assignment_group_uuid:
+ type: string
+ annotations:
+ index:
+ - inventory
+ assignment_date:
+ type: string
+ name:
+ type: string
+ annotations:
+ index:
+ - inventory
+ summary_property: true
+ model_uuid:
+ type: string
+ model_version:
+ type: string
+ license_key:
+ type: string
+ license_key_file_url:
+ type: string
+ supplier_release_list:
+ type: string
+ occurrences:
+ - 0
+ - UNBOUNDED
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+
+ org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList:
+ description: IPv6 Address Range
+ attributes:
+ l3_interface_ipv6_address:
+ description: IP address
+ type: string
+ annotations:
+ primary_id: true
+ index:
+ - inventory
+ l3_interface_ipv6_prefix_length:
+ description: Prefix length, 128 for single address
+ type: long
+ vlan_id_inner:
+ description: Inner VLAN tag
+ type: long
+ annotations:
+ index:
+ - inventory
+ vlan_id_outer:
+ description: Outer VLAN tag
+ type: long
+ is_floating:
+ description: Indicator of fixed or floating address
+ type: boolean
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ neutron_network_id:
+ description: Neutron network id of the interface that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ neutron_subnet_id:
+ description: Neutron id of subnet that address belongs to
+ type: string
+ annotations:
+ index:
+ - inventory
+ relationship_list:
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ requirements:
+ - l3_network:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.network.L3Network
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - subnet:
+ capability: org.openecomp.capabilities.inventory.Composite
+ node: org.openecomp.nodes.inventory.Subnet
+ relationship: org.openecomp.relationships.inventory.MemberOf.network
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - l_interface:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.LInterface
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+ - vlan:
+ capability: org.openecomp.capabilities.inventory.Belonging
+ node: org.openecomp.nodes.inventory.Vlan
+ relationship: org.openecomp.relationships.inventory.BelongsTo
+ occurrences:
+ - 0
+ - 1
+ annotations:
+ is_child: true
+
+ org.openecomp.nodes.inventory.network.L3Network:
+ description: Generic network definition
+ attributes:
+ network_id:
+ description: Network ID, should be uuid. Unique across A&AI.
+ type: string
+ annotations:
+ primary_id: true
+ unique:
+ - inventory
+ index:
+ - inventory
+ search:
+ - inventory
+ network_name:
+ description: Name of the network, governed by some naming convention..
+ type: string
+ annotations:
+ index:
+ - inventory
+ search:
+ - inventory
+ summary_property: true
+ network_type:
+ description: Type of the network - who defines these values?
+ type: string
+ network_role:
+ description: Role the network plans - who defines these values?
+ type: string
+ annotations:
+ index:
+ - inventory
+ network_technology:
+ description: Network technology - who defines these values?
+ type: string
+ neutron_network_id:
+ description: Neutron network id of this Interface
+ type: string
+ is_bound_to_vpn:
+ description: Set to true if bound to VPN
+ type: boolean
+ service_id:
+ description: Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED
+ type: string
+ annotations:
+ index:
+ - inventory
+ network_role_instance:
+ description: network role instance
+ type: long
+ resource_version:
+ description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.
+ type: string
+ orchestration_status:
+ description: Orchestration status of this VNF, mastered by MSO
+ type: string
+ heat_stack_id:
+ description: Heat stack id corresponding to this instance, managed by MSO
+ type: string
+ annotations:
+ index:
+ - inventory
+ mso_catalog_key:
+ description: Corresponds to the SDN-C catalog id used to configure this VCE
+ type: string
+ contrail_network_fqdn:
+ description: Contrail FQDN for the network
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_id:
+ description: the ASDC model id for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_version:
+ description: the ASDC model version for this resource or service model.
+ type: string
+ annotations:
+ index:
+ - inventory
+ persona_model_customization_id:
+ description: captures the id of all the configuration used to customize the resource for the service.
+ type: string
+ widget_model_id:
+ description: the ASDC data dictionary widget model. This maps directly to the A&AI widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ widget_model_version:
+ description: the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.
+ type: string
+ annotations:
+ index:
+ - inventory
+ physical_network_name:
+ description: Name associated with the physical network.
+ type: string
+ is_provider_network:
+ description: boolean indicatating whether or not network is a provider network.
+ type: boolean
+ is_shared_network:
+ description: boolean indicatating whether or not network is a shared network.
+ type: boolean
+ is_external_network:
+ description: boolean indicatating whether or not network is an external network.
+ type: boolean
+ selflink:
+ description: Path to the controller object.
+ type: string
+ subnets:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.Subnet
+ ctag_assignments:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.CtagAssignment
+ segmentation_assignments:
+ type: list
+ entry_schema:
+ type: org.openecomp.nodes.inventory.SegmentationAssignment
+ relationship_list:
+ description: Relates to tenant (or is it a child of tenant), complex, service, vpn-binding
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.inventory.Relationship
+ capabilities:
+ allotted_resource:
+ type: org.openecomp.capabilities.inventory.Allot
+ valid_source_types:
+ - org.openecomp.nodes.inventory.AllottedResource
+ cloud_region:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.CloudRegion
+ complex:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.cloud.infrastructure.Complex
+ generic_vnf:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.network.GenericVnf
+ l3_interface_ipv4_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv4AddressList
+ l3_interface_ipv6_address_list:
+ type: org.openecomp.capabilities.inventory.Composite
+ valid_source_types:
+ - org.openecomp.nodes.inventory.L3InterfaceIpv6AddressList
+ ctag_assignment:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.CtagAssignment
+ segmentation_assignment:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.SegmentationAssignment
+ subnet:
+ type: org.openecomp.capabilities.inventory.Belonging
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Subnet
+ service_instance:
+ type: org.openecomp.capabilities.inventory.Composeable
+ valid_source_types:
+ - org.openecomp.nodes.inventory.ServiceInstance
+ tenant:
+ type: org.openecomp.capabilities.inventory.Multiuse
+ valid_source_types:
+ - org.openecomp.nodes.inventory.Tenant
+ vf_module:
+ type: org.openecomp.capabilities.inventory.Node
+ valid_source_types:
+ - org.openecomp.nodes.inventory.VfModule
+ requirements:
+ - network_policy:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.NetworkPolicy
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - route_table_reference:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.RouteTableReference
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - vpn_binding:
+ capability: org.openecomp.capabilities.inventory.Multiuse
+ node: org.openecomp.nodes.inventory.network.VpnBinding
+ relationship: org.openecomp.relationships.inventory.Uses
+ occurrences:
+ - 0
+ - UNBOUNDED
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml
new file mode 100644
index 0000000000..a69e350139
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-inventory/relationships.yml
@@ -0,0 +1,57 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp-inventory/relationships.yml
+ version: '1.0'
+
+imports:
+- inventory_index:
+ file: _index.yml
+
+relationship_types:
+
+ org.openecomp.relationships.inventory.Uses:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.MemberOf.network:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.PartOf:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.AppliesTo:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.BridgedTo:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.ComposedOf:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.MemberOf:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
+
+ org.openecomp.relationships.inventory.BelongsTo:
+ derived_from: tosca.relationships.Root
+ description: Auto-generated from OXM.
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml
new file mode 100644
index 0000000000..5c4cefb6ff
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/_index.yml
@@ -0,0 +1,35 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp/_index.yml
+ version: '1.0'
+
+
+imports:
+- tosca_index:
+ file: ../tosca/_index.yml
+- capabilities:
+ file: capabilities.yml
+- nodes:
+ file: nodes.yml
+- relationships:
+ file: relationships.yml
+- groups:
+ file: groups.yml
+- data:
+ file: data.yml
+
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml
new file mode 100644
index 0000000000..77d8eb9857
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml
@@ -0,0 +1,100 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp/capabilities.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+capability_types:
+
+ org.openecomp.capabilities.attachment.DeploymentFlavor:
+ derived_from: tosca.capabilities.Attachment
+ description: The Node capability indicates the base capabilities of a TOSCA Node Type.
+ properties:
+ DeploymentFlavor:
+ type: map
+ description: Deployment flavors instance
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.DeploymentFlavor
+
+ org.openecomp.capabilities.metric.SnmpTrap:
+ derived_from: org.openecomp.capabilities.Metric
+ description: A node type that includes the Metric capability indicates that it can be monitored using snmp trap.
+ properties:
+ oid:
+ description: Object Id of the metric
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.capabilities.AllottedResource:
+ derived_from: tosca.capabilities.Root
+
+ org.openecomp.capabilities.metric.SnmpPolling:
+ derived_from: org.openecomp.capabilities.Metric
+ description: A node type that includes the Metric capability indicates that it can be monitored using snmp polling.
+ properties:
+ oid:
+ description: Object Id of the metric
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.capabilities.metric.Ceilometer:
+ derived_from: org.openecomp.capabilities.Metric
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ name:
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.capabilities.Metric:
+ derived_from: tosca.capabilities.Endpoint
+ description: A node type that includes the Metric capability indicates that it can be monitored.
+ properties:
+ unit:
+ description: Unit of the metric value
+ type: string
+ status: SUPPORTED
+ required: true
+ description:
+ description: Description of the metric
+ type: string
+ status: SUPPORTED
+ required: false
+ type:
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ type: string
+ status: SUPPORTED
+ required: true
+ category:
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ type: string
+ status: SUPPORTED
+ required: false
+ attributes:
+ value:
+ description: Runtime monitored value
+ type: string
+ status: SUPPORTED
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
new file mode 100644
index 0000000000..53ea8a8656
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml
@@ -0,0 +1,478 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp/data.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+data_types:
+
+ org.openecomp.datatypes.network.ProviderNetwork:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_provider_network:
+ description: \"true\" indicates that this a Neutron provider type of network
+ type: boolean
+ required: true
+ physical_network_name:
+ description: |
+ Identifies the NUMA processor cluster to which this physical network interface belongs. NUMA instance correlates to the first digit of the Physical Network Name suffix (e.g. \"01\" = NUMA 0, \"11\" = NUMA 1)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - Physnet41
+ - Physnet42
+ - Physnet43
+ - Physnet44
+ - Physnet21
+ - Physnet22
+ numa:
+ description: |
+ PNIC instance within the NUMA processor cluster PNIC Instance correlates to the second digit of the Physical Network Name suffix (e.g. "01" = PNIC 1, "02" = "PNIC 2)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - NUMA 0
+ - NUMA 1
+ pnic_instance:
+ description: PNIC instance within the NUMA processor cluster
+ type: integer
+ required: false
+
+ org.openecomp.datatypes.DeploymentFlavor:
+ derived_from: tosca.datatypes.Root
+ description: Deployment Flavor
+ properties:
+ name:
+ description: Deployment Flavor Name
+ type: string
+ status: SUPPORTED
+ required: true
+ license_feature_group:
+ description: license feature group associated with Deployment Flavor
+ type: org.openecomp.datatypes.FeatureGroup
+ status: SUPPORTED
+ required: true
+ compute_size:
+ description: Size of VM
+ type: org.openecomp.datatypes.ComputeFlavor
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.datatypes.FeatureGroup:
+ derived_from: tosca.datatypes.Root
+ description: License Feature Group
+ properties:
+ license_feature_group_ref:
+ description: Deployment Flavor Name
+ type: string
+ status: SUPPORTED
+ required: true
+ part_number:
+ description: refrence part number related to feature group
+ type: string
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.datatypes.EcompHoming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_selected_instance_node_target:
+ description: |
+ "true" indicates that the target deployment node for this instance will be auto-selected by OPENECOMP "false" indicates operator-supplied instance target deployment node required (e.g. VID will present a prompt to operator and collect the operator-selected target node for the deployment of this Network instance).
+ type: boolean
+ default: false
+ required: true
+ homing_policy:
+ description: Referenc to a service level homing policy that OPENECOMP will use for instance deployment target node
+ type: string
+ required: false
+ instance_node_target:
+ description: Instance target deployment node
+ type: string
+ required: false
+
+ org.openecomp.datatypes.AssignmentRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_required:
+ description: |
+ "true" indicates that assignment is required
+ type: boolean
+ default: false
+ required: true
+ count:
+ description: number of assignments required
+ type: integer
+ required: false
+
+
+ org.openecomp.datatypes.network.IpRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ip_version:
+ type: integer
+ required: true
+ constraints:
+ - 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
+ assingment_method:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - fixed
+ - dhcp
+
+ org.openecomp.datatypes.network.PhysicalNetwork:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ provider_network:
+ description: true indicates that this a Neutron provider type of network
+ type: boolean
+ required: true
+ physical_network_name:
+ description: |
+ Identifies the NUMA processor cluster to which this physical network interface belongs. NUMA instance correlates to the first digit of the Physical Network Name suffix (e.g. "01" = NUMA 0, "11" = NUMA 1)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - Physnet-SRIOV-1
+ - Physnet-SRIOV-2
+ - Physnet-SRIOV-11
+ - Physnet-SRIOV-12
+ numa:
+ description: |
+ PNIC instance within the NUMA processor cluster PNIC Instance correlates to the second digit of the Physical Network Name suffix (e.g. "01" = PNIC 1, "02" = "PNIC 2)
+ type: string
+ required: false
+ constraints:
+ - valid_values:
+ - NUMA 0
+ - NUMA 1
+ pnic_instance:
+ description: PNIC instance within the NUMA processor cluster
+ type: integer
+ required: false
+
+ org.openecomp.datatypes.network.VlanRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ vlan_range_plan:
+ description: reference to a vlan range plan
+ type: string
+ required: true
+ vlan_type:
+ description: identifies the vlan type (e.g., c-tag)
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - c-tag
+ - s-tag
+ vlan_count:
+ description: identifies the number of vlan tags to assign to the CP from the plan
+ type: integer
+ required: true
+
+ org.openecomp.datatypes.ComputeFlavor:
+ derived_from: tosca.datatypes.Root
+ description: Compute Flavor (Size)
+ properties:
+ name:
+ description: Compute Flavor Name
+ type: string
+ status: SUPPORTED
+ required: true
+ num_cpus:
+ description: Number of cpu
+ type: integer
+ status: SUPPORTED
+ required: true
+ disk_size:
+ description: Disk size
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: true
+ mem_size:
+ description: Memory size
+ type: scalar-unit.size
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.datatypes.network.MacAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ mac_range_plan:
+ description: reference to a MAC address range plan
+ type: string
+ required: true
+ mac_count:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: integer
+ required: false
+ mac_count_required:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+
+ org.openecomp.datatypes.network.MacRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ mac_range_plan:
+ description: reference to a MAC address range plan
+ type: string
+ required: true
+ mac_count:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: integer
+ required: false
+ mac_count_required:
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+
+ org.openecomp.datatypes.network.SubnetAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ip_network_address_plan:
+ description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network
+ type: string
+ required: false
+ dhcp_enabled:
+ description: \"true\" indicates the network has 1 or more policies
+ type: boolean
+ required: false
+ ip_version:
+ description: The IP version of the subnet
+ type: integer
+ required: true
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ cidr_mask:
+ description: The default subnet CIDR mask
+ type: integer
+ required: true
+ min_subnets_count:
+ description: Quantity of subnets that must be initially assigned
+ type: integer
+ default: 1
+ required: true
+
+ org.openecomp.datatypes.Artifact:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ artifact_name:
+ description: Artifcat name
+ type: string
+ required: true
+ artifact_type:
+ description: Artifcat type
+ type: string
+ required: true
+ artifact_uuid:
+ description: Artifcat UUID
+ type: string
+ required: true
+ artifact_checksum:
+ description: Artifact checksum
+ type: string
+ required: true
+ artifact_url:
+ description: Artifcay URL. Can also include only the file name
+ type: string
+ required: true
+
+ org.openecomp.datatypes.network.IPv4SubnetAssignments:
+ derived_from: org.openecomp.datatypes.network.SubnetAssignments
+ properties:
+ use_ipv4:
+ description: Indicates IPv4 subnet assignments
+ type: boolean
+ required: true
+
+ org.openecomp.datatypes.Root:
+ derived_from: tosca.datatypes.Root
+ description: |
+ The AT&T root Data Type all other Data Types derive from
+ properties:
+ supplemental_data:
+ type: map
+ entry_schema:
+ type: string
+ description: |
+ A placeholder for missing properties that would be included in future OPENecomp model
+ versions. fromat <key>:<value>
+
+
+ org.openecomp.datatypes.substitution.SubstitutionFiltering:
+ derived_from: tosca.datatypes.Root
+ description: Substitution Filter
+ properties:
+ substitute_service_template:
+ description: Substitute Service Template
+ type: string
+ status: SUPPORTED
+ required: true
+ index_value:
+ description: Index value of the substitution service template runtime instance
+ type: integer
+ status: SUPPORTED
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ count:
+ description: Count
+ type: string
+ status: SUPPORTED
+ default: 1
+ required: false
+ scaling_enabled:
+ description: Indicates whether service scaling is enabled
+ type: boolean
+ status: SUPPORTED
+ default: true
+ required: false
+ mandatory:
+ description: Mandatory
+ type: boolean
+ status: SUPPORTED
+ required: false
+
+ org.openecomp.datatypes.network.NetworkFlows:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_network_policy:
+ description: true indicates the network has 1 or more policies
+ type: boolean
+ default: false
+ required: false
+ network_policy:
+ description: Identifies the specific OPENECOMP Contrail network policy that must be applied to this network (source - from Policy Manager)
+ type: string
+ required: false
+ vpn_binding:
+ description: Identifies the specific VPN Binding entry in A&AI that must be applied when creating this network (source - A&AI)
+ type: string
+ required: false
+
+ org.openecomp.datatypes.network.NetworkAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_network_assignment:
+ description: |
+ "true" indicates that the network assignments will be auto-generated by OPENECOMP "false" indicates operator-supplied Network assignments file upload is required (e.g. VID will present prompt to operator to upload operator-supplied Network assignments file).
+ type: boolean
+ default: false
+ required: true
+ network_assignments_file:
+ description: Filename of the template that specifies all of the configurable name/value pairs of Network assignments in this Network model
+ type: string
+ required: false
+ multi_tenant:
+ description: true means this network is shared by multiple Openstack tenants
+ type: boolean
+ default: true
+ required: true
+ min_subnets_count:
+ description: Quantity of subnets that must be initially assigned
+ type: integer
+ required: true
+ ip_network_address_plan:
+ description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network
+ type: string
+ required: true
+ vlan_network_address_plan:
+ description: Reference to VLAN or other address plan ID used to assign subnets to this network
+ type: string
+ required: true
+
+ org.openecomp.datatypes.network.IPv6SubnetAssignments:
+ derived_from: org.openecomp.datatypes.network.SubnetAssignments
+ properties:
+ use_ipv6:
+ description: Indicates IPv6 subnet assignments
+ type: boolean
+ required: true
+
+ org.openecomp.datatypes.EcompNaming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_naming:
+ description: |
+ "true" indicates that the name for the instance will be auto-generated by OPENECOMP. "false" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name).
+ type: boolean
+ default: true
+ required: true
+ naming_policy:
+ description: Referenc to naming policy that OPENECOMP will use when the name is auto-generated
+ type: string
+ required: false
+
+ org.openecomp.datatypes.Naming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_naming:
+ description: |
+ "true" indicates that the name for the instance will be auto-generated by OPENECOMP. "false" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name).
+ type: boolean
+ default: true
+ required: true
+
+ org.openecomp.datatypes.EcompGeneratedNaming:
+ derived_from: org.openecomp.datatypes.Naming
+ properties:
+ naming_policy:
+ description: Referenc to naming policy that OPENECOMP will use when the name is auto-generated
+ type: string
+ required: false
+
+ org.openecomp.datatypes.UserDefinedNaming:
+ derived_from: org.openecomp.datatypes.Naming
+ properties:
+ instance_name:
+ description: Reference to naming policy that OPENECOMP will use when the name is auto-generated
+ type: string
+ required: false
+
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml
new file mode 100644
index 0000000000..438dd071a8
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/groups.yml
@@ -0,0 +1,72 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp/groups.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+group_types:
+
+ org.openecomp.groups.VfModule:
+ derived_from: tosca.groups.Root
+ description: Grouped all heat resources which are in the same VF Module
+ properties:
+ isBase:
+ description: Whether this module should be deployed before other modules
+ type: boolean
+ status: SUPPORTED
+ default: false
+ required: true
+ vf_module_label:
+ description: |
+ Alternate textual key used to reference this VF-Module model. Must be unique within the VNF model
+ type: string
+ required: true
+ vf_module_description:
+ description: |
+ Description of the VF-modules contents and purpose (e.g. "Front-End" or "Database Cluster")
+ type: string
+ required: true
+ min_vf_module_instances:
+ description: The minimum instances of this VF-Module
+ type: integer
+ required: true
+ max_vf_module_instances:
+ description: The maximum instances of this VF-Module
+ type: integer
+ required: false
+ initial_count:
+ description: |
+ The initial count of instances of the VF-Module. The value must be in the range between min_vfmodule_instances and max_vfmodule_instances. If no value provided the initial count is the min_vfmodule_instances.
+ type: integer
+ required: false
+ vf_module_type:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - Base
+ - Expansion
+ volume_group:
+ description: |
+ "true" indicates that this VF Module model requires attachment to a Volume Group. VID operator must select the Volume Group instance to attach to a VF-Module at deployment time.
+ type: boolean
+ default: false
+ required: true
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
new file mode 100644
index 0000000000..c9c11a7da3
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml
@@ -0,0 +1,523 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp/nodes.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+node_types:
+
+ org.openecomp.resource.vl.nodes.network.Network:
+ derived_from: tosca.nodes.network.Network
+ properties:
+ vendor:
+ type: string
+ required: false
+ vl_name:
+ type: string
+ required: false
+ capabilities:
+ end_point:
+ type: tosca.capabilities.Endpoint
+
+ org.openecomp.resource.abstract.nodes.AbstractSubstitute:
+ derived_from: tosca.nodes.Root
+ properties:
+ service_template_filter:
+ description: Substitution Filter
+ type: org.openecomp.datatypes.substitution.SubstitutionFiltering
+ status: SUPPORTED
+ required: true
+
+ org.openecomp.resource.vl.extVL:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ description: VF Tenant oam protected network
+ properties:
+ network_type:
+ description: OPENECOMP supported network types.
+ type: string
+ required: true
+ network_role:
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ type: string
+ required: true
+ network_scope:
+ description: |
+ Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
+ type: string
+ constraints:
+ - valid_values:
+ - VF
+ - SERVICE
+ - GLOBAL
+ network_technology:
+ description: OPENECOMP supported network technology
+ type: string
+ required: true
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ required: true
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ required: true
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ required: true
+ provider_network:
+ type: org.openecomp.datatypes.network.ProviderNetwork
+ required: true
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ required: false
+
+
+ org.openecomp.resource.vfc.nodes.Compute:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ disk.ephemeral.size:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.abstract.nodes.DFAbstractSubstitute:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ license_feature_group_ref:
+ description: refrence to license feature group
+ type: string
+ status: SUPPORTED
+ required: true
+ requirements:
+ - deployment_flavor:
+ capability: org.openecomp.capabilities.attachment.DeploymentFlavor
+ node: org.openecomp.resource.nodes.DeploymentFlavor
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.abstract.nodes.VFC:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ high_availablity:
+ description: high_availablity
+ type: string
+ status: SUPPORTED
+ required: false
+ vm_image_name:
+ description: Master image_name volume id
+ type: string
+ status: SUPPORTED
+ required: true
+ vm_flavor_name:
+ description: Master image_name volume id
+ type: string
+ status: SUPPORTED
+ required: true
+ nfc_naming_code:
+ description: nfc code for instance naming
+ type: string
+ status: SUPPORTED
+ required: false
+ vm_type_tag:
+ description: vm type based on naming Convention
+ type: string
+ status: SUPPORTED
+ required: false
+ vfc_naming:
+ description: vfc naming
+ type: org.openecomp.datatypes.Naming
+ status: SUPPORTED
+ default: false
+ required: false
+ min_instances:
+ description: Minimum number of VFC Instances
+ type: integer
+ status: SUPPORTED
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ max_instances:
+ description: Maximum number of VFC Instances
+ type: integer
+ status: SUPPORTED
+ required: false
+ constraints:
+ - greater_or_equal: 1
+
+ org.openecomp.resource.vl.ELine:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ capabilities:
+ linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 0
+ - 2
+
+ org.openecomp.resource.cp.nodes.network.SubInterface:
+ derived_from: tosca.nodes.network.Port
+
+ org.openecomp.resource.vl.internalVL:
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
+ description: The AT&T internal (VF-level) Virtual Link
+
+ org.openecomp.resource.cp.nodes.network.Port:
+ derived_from: tosca.nodes.network.Port
+ properties:
+ network_role_tag:
+ description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ type: string
+ required: true
+ mac_requirements:
+ description: identifies MAC address assignments to the CP
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: false
+ vlan_requirements:
+ description: identifies vlan address assignments to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ required: false
+ ip_requirements:
+ description: identifies IP requirements to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ required: true
+ capabilities:
+ network.incoming.packets.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets:
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.nodes.DeploymentFlavor:
+ derived_from: tosca.nodes.Root
+ capabilities:
+ deployment_flavor:
+ description: Allowed deployment flavors of an abstract node
+ type: org.openecomp.capabilities.attachment.DeploymentFlavor
+ occurrences:
+ - 1
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.extCP:
+ derived_from: tosca.nodes.Root
+ description: The AT&T Connection Point base type all other CP derive from
+ properties:
+ network_role:
+ description: identical to VL network_role
+ type: string
+ required: true
+ order:
+ description: The order of the CP on the compute instance (e.g. eth2).
+ type: integer
+ required: true
+ network_role_tag:
+ description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ type: string
+ required: true
+ mac_requirements:
+ description: identifies MAC address assignments to the CP
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: false
+ vlan_requirements:
+ description: identifies vlan address assignments to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ required: false
+ ip_requirements:
+ description: identifies IP requirements to the CP
+ type: list
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ required: true
+ capabilities:
+ internal_connectionPoint:
+ type: tosca.capabilities.Node
+ valid_source_types:
+ - tosca.nodes.network.Port
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - virtualBinding:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ - external_virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ node: org.openecomp.resource.vl.nodes.network.Network
+ relationship: tosca.relationships.network.LinksTo
+
+ org.openecomp.resource.vfc.nodes.volume:
+ derived_from: tosca.nodes.BlockStorage
+
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml
new file mode 100644
index 0000000000..6243cfa5d1
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml
@@ -0,0 +1,56 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_openecomp_1_0
+
+metadata:
+ filename: openecomp/relationships.yml
+ version: '1.0'
+
+imports:
+- openecomp_index:
+ file: _index.yml
+
+relationship_types:
+
+ org.openecomp.relationships.VolumeAttachesTo:
+ derived_from: org.openecomp.relationships.AttachesTo
+ description: This type represents an attachment relationship for associating volume
+ properties:
+ volume_id:
+ description: The ID of the volume to be attached
+ type: string
+ status: SUPPORTED
+ required: true
+ instance_uuid:
+ description: The ID of the server to which the volume attaches
+ type: string
+ status: SUPPORTED
+ required: true
+ attributes:
+ show:
+ description: Detailed information about resource
+ type: string
+ status: SUPPORTED
+
+ org.openecomp.relationships.AttachesTo:
+ derived_from: tosca.relationships.AttachesTo
+ description: This type represents an attachment relationship
+ properties:
+ location:
+ description: The relative location (e.g., path on the file system), which provides the root location to address an attached node.
+ type: string
+ status: SUPPORTED
+ required: false
+
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml
new file mode 100644
index 0000000000..50901ed13a
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/_index.yml
@@ -0,0 +1,37 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/_index.yml
+ version: '1.0'
+
+imports:
+- capabilities:
+ file: capabilities.yml
+- nodes:
+ file: nodes.yml
+- relationships:
+ file: relationships.yml
+- groups:
+ file: groups.yml
+- data:
+ file: data.yml
+- interfaces:
+ file: interfaces.yml
+- artifacts:
+ file: artifacts.yml
+- policies:
+ file: policies.yml \ No newline at end of file
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml
new file mode 100644
index 0000000000..bcb8280d1d
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/artifacts.yml
@@ -0,0 +1,55 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/artifacts.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+artifact_types:
+ tosca.artifacts.Root:
+ description: This is the default (root) TOSCA Artifact Type definition that all other TOSCA base Artifact Types derive from.
+
+ tosca.artifacts.Deployment.Image:
+ derived_from: tosca.artifacts.Deployment
+ description: This artifact type represents a parent type for any "image" which is an opaque packaging of a TOSCA Node's deployment (whether real or virtual) whose contents are typically already installed and pre-configured (i.e., "stateful") and prepared to be run on a known target container.
+
+ tosca.artifacts.Implementation.Bash:
+ derived_from: tosca.artifacts.Implementation
+ description: This artifact type represents a Bash script type that contains Bash commands that can be executed on the Unix Bash shell.
+
+ tosca.artifacts.Deployment.Image.VM:
+ derived_from: tosca.artifacts.Deployment
+ description: This artifact represents the parent type for all Virtual Machine (VM) image and container formatted deployment artifacts. These images contain a stateful capture of a machine (e.g., server) including operating system and installed software along with any configurations and can be run on another machine using a hypervisor which virtualizes typical server (i.e., hardware) resources.
+
+ tosca.artifacts.Implementation.Python:
+ derived_from: tosca.artifacts.Implementation
+ description: This artifact type represents a Python file that contains Python language constructs that can be executed within a Python interpreter.
+
+ tosca.artifacts.Deployment:
+ derived_from: tosca.artifacts.Root
+ description: This artifact type represents the parent type for all deployment artifacts in TOSCA. This class of artifacts typically represents a binary packaging of an application or service that is used to install/create or deploy it as part of a node's lifecycle.
+
+ tosca.artifacts.File:
+ derived_from: tosca.artifacts.Root
+ description: This artifact type is used when an artifact definition needs to have its associated file simply treated as a file and no special handling/handlers are invoked (i.e., it is not treated as either an implementation or deployment artifact type).
+
+ tosca.artifacts.Implementation:
+ derived_from: tosca.artifacts.Root
+ description: This artifact type represents the parent type for all implementation artifacts in TOSCA. These artifacts are used to implement operations of TOSCA interfaces either directly (e.g., scripts) or indirectly (e.g., config. files).
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml
new file mode 100644
index 0000000000..d86e9e8bca
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/capabilities.yml
@@ -0,0 +1,230 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/capabilities.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+capability_types:
+ tosca.capabilities.Root:
+ description: This is the default (root) TOSCA Capability Type definition that all other TOSCA Capability Types derive from.
+
+ tosca.capabilities.Node:
+ derived_from: tosca.capabilities.Root
+ description: The Node capability indicates the base capabilities of a TOSCA Node Type.
+
+ tosca.capabilities.Container:
+ derived_from: tosca.capabilities.Root
+ description: The Container capability, when included on a Node Type or Template definition, indicates that the node can act as a container for (or a host for) one or more other declared Node Types.
+ properties:
+ num_cpus:
+ description: Number of (actual or virtual) CPUs associated with the Compute node.
+ type: integer
+ required: false
+ constraints:
+ - greater_or_equal: 1
+ cpu_frequency:
+ description: Specifies the operating frequency of CPU's core. This property expresses the expected frequency of one (1) CPU as provided by the property "num_cpus".
+ type: scalar-unit.frequency
+ required: false
+ constraints:
+ - greater_or_equal: 0.1 GHz
+ disk_size:
+ description: Size of the local disk available to applications running on the Compute node (default unit is MB).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 MB
+ mem_size:
+ description: Size of memory available to applications running on the Compute node (default unit is MB).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 MB
+
+ tosca.capabilities.Endpoint:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used or extended to define a network endpoint capability. This includes the information to express a basic endpoint with a single port or a complex endpoint with multiple ports. By default the Endpoint is assumed to represent an address on a private network unless otherwise specified.
+ properties:
+ protocol:
+ description: 'The name of the protocol (i.e., the protocol prefix) that the
+ endpoint accepts (any OSI Layer 4-7 protocols). Examples: http, https, ftp,
+ tcp, udp, etc.'
+ type: string
+ default: tcp
+ required: true
+ port:
+ description: The optional port of the endpoint.
+ type: tosca.datatypes.network.PortDef
+ required: false
+ secure:
+ description: Requests for the endpoint to be secure and use credentials supplied on the ConnectsTo relationship.
+ type: boolean
+ default: false
+ required: false
+ url_path:
+ description: The optional URL path of the endpoint's address if applicable for the protocol.
+ type: string
+ required: false
+ port_name:
+ description: The optional name (or ID) of the network port this endpoint should be bound to.
+ type: string
+ required: false
+ network_name:
+ description: 'The optional name (or ID) of the network this endpoint should
+ be bound to. network_name: PRIVATE | PUBLIC | <network_name> | <network_id>.'
+ type: string
+ default: PRIVATE
+ required: false
+ initiator:
+ description: The optional indicator of the direction of the connection.
+ type: string
+ default: source
+ required: false
+ constraints:
+ - valid_values:
+ - source
+ - target
+ - peer
+ ports:
+ description: The optional map of ports the Endpoint supports (if more than one).
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortSpec
+ required: false
+ constraints:
+ - min_length: 1
+ attributes:
+ ip_address:
+ description: 'Note: This is the IP address as propagated up by the associated
+ node''s host (Compute) container.'
+ type: string
+
+ tosca.capabilities.Endpoint.Public:
+ derived_from: tosca.capabilities.Endpoint
+ description: |-
+ This capability represents a public endpoint which is accessible to the general internet (and its public IP address ranges).
+ This public endpoint capability also can be used to create a floating (IP) address that the underlying network assigns from a pool allocated from the application's underlying public network. This floating address is managed by the underlying network such that can be routed an application's private address and remains reliable to internet clients.
+ properties:
+ network_name:
+ type: string
+ default: PUBLIC
+ constraints:
+ - equal: PUBLIC
+
+ tosca.capabilities.Endpoint.Admin:
+ derived_from: tosca.capabilities.Endpoint
+ description: This is the default TOSCA type that should be used or extended to define a specialized administrator endpoint capability.
+ properties:
+ secure:
+ description: Requests for the endpoint to be secure and use credentials supplied on the ConnectsTo relationship.
+ type: boolean
+ default: true
+ constraints:
+ - equal: true
+
+ tosca.capabilities.Endpoint.Database:
+ derived_from: tosca.capabilities.Endpoint
+ description: This is the default TOSCA type that should be used or extended to define a specialized database endpoint capability.
+
+ tosca.capabilities.Attachment:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used or extended to define an attachment capability of a (logical) infrastructure device node (e.g., BlockStorage node).
+
+ tosca.capabilities.OperatingSystem:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used to express an Operating System capability for a node.
+ properties:
+ architecture:
+ description: 'The Operating System (OS) architecture. Examples of valid values
+ include: x86_32, x86_64, etc.'
+ type: string
+ required: false
+ type:
+ description: 'The Operating System (OS) type. Examples of valid values include:
+ linux, aix, mac, windows, etc.'
+ type: string
+ required: false
+ distribution:
+ description: 'The Operating System (OS) distribution. Examples of valid values
+ for a "type" of "Linux" would include: debian, fedora, rhel and ubuntu.'
+ type: string
+ required: false
+ version:
+ description: The Operating System version.
+ type: version
+ required: false
+
+ tosca.capabilities.Scalable:
+ derived_from: tosca.capabilities.Root
+ description: This is the default TOSCA type that should be used to express a scalability capability for a node.
+ properties:
+ min_instances:
+ description: This property is used to indicate the minimum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator.
+ type: integer
+ default: 1
+ max_instances:
+ description: This property is used to indicate the maximum number of instances that should be created for the associated TOSCA Node Template by a TOSCA orchestrator.
+ type: integer
+ default: 1
+ default_instances:
+ description: 'An optional property that indicates the requested default number
+ of instances that should be the starting number of instances a TOSCA orchestrator
+ should attempt to allocate. Note: The value for this property MUST be in
+ the range between the values set for "min_instances" and "max_instances"
+ properties.'
+ type: integer
+ required: false
+
+ tosca.capabilities.network.Bindable:
+ derived_from: tosca.capabilities.Node
+ description: A node type that includes the Bindable capability indicates that it can be bound to a logical network association via a network port.
+
+ tosca.capabilities.network.Linkable:
+ derived_from: tosca.capabilities.Node
+ description: A node type that includes the Linkable capability indicates that it can be pointed by tosca.relationships.network.LinksTo relationship type.
+
+ tosca.capabilities.Container.Docker:
+ derived_from: tosca.capabilities.Container
+ properties:
+ version:
+ type: list
+ entry_schema:
+ type: version
+ required: false
+ publish_all:
+ type: boolean
+ default: false
+ required: false
+ publish_ports:
+ type: list
+ entry_schema:
+ type: PortSpec
+ required: false
+ expose_ports:
+ type: list
+ entry_schema:
+ type: PortSpec
+ required: false
+ volumes:
+ type: list
+ entry_schema:
+ type: string
+ required: false
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml
new file mode 100644
index 0000000000..c77b89c10f
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/data.yml
@@ -0,0 +1,191 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/data.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+data_types:
+ tosca.datatypes.Root:
+ description: The TOSCA root Data Type all other TOSCA base Data Types derive from
+
+ string:
+ derived_from: tosca.datatypes.Root
+
+ integer:
+ derived_from: tosca.datatypes.Root
+
+ boolean:
+ derived_from: tosca.datatypes.Root
+
+ float:
+ derived_from: tosca.datatypes.Root
+
+ range:
+ derived_from: tosca.datatypes.Root
+
+ list:
+ derived_from: tosca.datatypes.Root
+
+ map:
+ derived_from: tosca.datatypes.Root
+
+ timestamp:
+ derived_from: tosca.datatypes.Root
+
+ version:
+ derived_from: tosca.datatypes.Root
+
+ scalar-unit.size:
+ derived_from: tosca.datatypes.Root
+
+ scalar-unit.frequency:
+ derived_from: tosca.datatypes.Root
+
+ scalar-unit.time:
+ derived_from: tosca.datatypes.Root
+
+ tosca.datatypes.network.NetworkInfo:
+ derived_from: tosca.datatypes.Root
+ description: The Network type is a complex TOSCA data type used to describe logical network information.
+ properties:
+ network_name:
+ description: The name of the logical network. e.g., "public", "private", "admin". etc.
+ type: string
+ required: false
+ network_id:
+ description: The unique ID of for the network generated by the network provider.
+ type: string
+ required: false
+ addresses:
+ description: The list of IP addresses assigned from the underlying network.
+ type: list
+ entry_schema:
+ type: string
+ required: false
+
+ tosca.datatypes.TimeInterval:
+ derived_from: tosca.datatypes.Root
+ properties:
+ start_time:
+ type: timestamp
+ required: true
+ end_time:
+ type: timestamp
+ required: true
+
+ tosca.datatypes.network.PortSpec:
+ derived_from: tosca.datatypes.Root
+ description: The PortSpec type is a complex TOSCA data Type used when describing port specifications for a network connection.
+ properties:
+ protocol:
+ description: The required protocol used on the port.
+ type: string
+ default: tcp
+ constraints:
+ - valid_values:
+ - udp
+ - tcp
+ - igmp
+ source:
+ description: The optional source port.
+ type: tosca.datatypes.network.PortDef
+ required: false
+ source_range:
+ description: The optional range for source port.
+ type: range
+ required: false
+ constraints:
+ - in_range:
+ - 1
+ - 65535
+ target:
+ description: The optional target port.
+ type: tosca.datatypes.network.PortDef
+ required: false
+ target_range:
+ description: The optional range for target port.
+ type: range
+ required: false
+ constraints:
+ - in_range:
+ - 1
+ - 65535
+
+ tosca.datatypes.network.PortDef:
+ derived_from: integer
+ description: The PortDef type is a TOSCA data Type used to define a network port.
+ constraints:
+ - in_range:
+ - 1
+ - 65535
+
+ tosca.datatypes.network.PortInfo:
+ derived_from: tosca.datatypes.Root
+ description: The PortInfo type is a complex TOSCA data type used to describe network port information.
+ properties:
+ port_name:
+ description: The logical network port name.
+ type: string
+ required: false
+ port_id:
+ description: The unique ID for the network port generated by the network provider.
+ type: string
+ required: false
+ network_id:
+ description: The unique ID for the network.
+ type: string
+ required: false
+ mac_address:
+ description: The unique media access control address (MAC address) assigned to the port.
+ type: string
+ required: false
+ addresses:
+ description: The list of IP address(es) assigned to the port.
+ type: list
+ entry_schema:
+ type: string
+ required: false
+
+ tosca.datatypes.Credential:
+ derived_from: tosca.datatypes.Root
+ description: The Credential type is a complex TOSCA data Type used when describing authorization credentials used to access network accessible resources.
+ properties:
+ protocol:
+ description: The optional protocol name.
+ type: string
+ required: false
+ token_type:
+ description: The required token type.
+ type: string
+ default: password
+ token:
+ description: The required token used as a credential for authorization or access to a networked resource.
+ type: string
+ keys:
+ description: The optional list of protocol-specific keys or assertions.
+ type: map
+ entry_schema:
+ type: string
+ required: false
+ user:
+ description: The optional user (name or ID) used for non-token based credentials.
+ type: string
+ required: false
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml
new file mode 100644
index 0000000000..4c86523746
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/groups.yml
@@ -0,0 +1,30 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/groups.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+group_types:
+ tosca.groups.Root:
+ description: This is the default (root) TOSCA Group Type definition that all other TOSCA base Group Types derive from.
+ interfaces:
+ standard:
+ type: tosca.interfaces.node.lifecycle.Standard
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml
new file mode 100644
index 0000000000..c90210f4b8
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/interfaces.yml
@@ -0,0 +1,61 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/interfaces.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+interface_types:
+ tosca.interfaces.Root:
+ description: This is the default (root) TOSCA Interface Type definition that all other TOSCA Interface Types derive from.
+
+ tosca.interfaces.node.lifecycle.Standard:
+ derived_from: tosca.interfaces.Root
+ description: This lifecycle interface defines the essential, normative operations that TOSCA nodes may support.
+ stop:
+ description: Standard lifecycle stop operation.
+ start:
+ description: Standard lifecycle start operation.
+ create:
+ description: Standard lifecycle create operation.
+ configure:
+ description: Standard lifecycle configure operation.
+ delete:
+ description: Standard lifecycle delete operation.
+
+ tosca.interfaces.relationship.Configure:
+ derived_from: tosca.interfaces.Root
+ description: The lifecycle interfaces define the essential, normative operations that each TOSCA Relationship Types may support.
+ pre_configure_source:
+ description: Operation to pre-configure the source endpoint.
+ pre_configure_target:
+ description: Operation to pre-configure the target endpoint.
+ post_configure_source:
+ description: Operation to post-configure the source endpoint.
+ post_configure_target:
+ description: Operation to post-configure the target endpoint.
+ add_target:
+ description: Operation to notify the source node of a target node being added via a relationship.
+ add_source:
+ description: Operation to notify the target node of a source node which is now available via a relationship.
+ target_changed:
+ description: Operation to notify source some property or attribute of the target changed
+ remove_target:
+ description: Operation to remove a target node. \ No newline at end of file
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml
new file mode 100644
index 0000000000..336a473cf5
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/nodes.yml
@@ -0,0 +1,371 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/nodes.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+node_types:
+ tosca.nodes.Root:
+ description: The TOSCA Root Node Type is the default type that all other TOSCA base Node Types derive from. This allows for all TOSCA nodes to have a consistent set of features for modeling and management (e.g., consistent definitions for requirements, capabilities and lifecycle interfaces).
+ attributes:
+ tosca_id:
+ description: A unique identifier of the realized instance of a Node Template that derives from any TOSCA normative type.
+ type: string
+ tosca_name:
+ description: This attribute reflects the name of the Node Template as defined in the TOSCA service template. This name is not unique to the realized instance model of corresponding deployed application as each template in the model can result in one or more instances (e.g., scaled) when orchestrated to a provider environment.
+ type: string
+ state:
+ description: The state of the node instance.
+ type: string
+ default: initial
+ capabilities:
+ feature:
+ type: tosca.capabilities.Node
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ interfaces:
+ standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+
+ tosca.nodes.ObjectStorage:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA ObjectStorage node represents storage that provides the ability to store data as objects (or BLOBs of data) without consideration for the underlying filesystem or devices.
+ properties:
+ name:
+ description: The logical name of the object store (or container).
+ type: string
+ size:
+ description: The requested initial storage size (default unit is in Gigabytes).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 GB
+ maxsize:
+ description: The requested maximum storage size (default unit is in Gigabytes).
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 GB
+ capabilities:
+ storage_endpoint:
+ type: tosca.capabilities.Endpoint
+
+ tosca.nodes.DBMS:
+ derived_from: tosca.nodes.SoftwareComponent
+ description: The TOSCA DBMS node represents a typical relational, SQL Database Management System software component or service.
+ properties:
+ root_password:
+ description: The optional root password for the DBMS server.
+ type: string
+ required: false
+ port:
+ description: The DBMS server's port.
+ type: integer
+ required: false
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.Database
+
+ tosca.nodes.WebApplication:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA WebApplication node represents a software application that can be managed and run by a TOSCA WebServer node. Specific types of web applications such as Java, etc. could be derived from this type.
+ properties:
+ context_root:
+ description: The web application's context root which designates the application's URL path within the web server it is hosted on.
+ type: string
+ required: false
+ capabilities:
+ app_endpoint:
+ type: tosca.capabilities.Endpoint
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.WebServer
+ relationship: tosca.relationships.HostedOn
+
+ tosca.nodes.Compute:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Compute node represents one or more real or virtual processors of software applications or services along with other essential local resources. Collectively, the resources the compute node represents can logically be viewed as a (real or virtual) "server".
+ attributes:
+ private_address:
+ description: The primary private IP address assigned by the cloud provider that applications may use to access the Compute node.
+ type: string
+ public_address:
+ description: The primary public IP address assigned by the cloud provider that applications may use to access the Compute node.
+ type: string
+ networks:
+ description: The list of logical networks assigned to the compute host instance and information about them.
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ description: The list of logical ports assigned to the compute host instance and information about them.
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ binding:
+ type: tosca.capabilities.network.Bindable
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.network.Network:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Network node represents a simple, logical network service.
+ properties:
+ ip_version:
+ description: The IP version of the requested network.
+ type: integer
+ default: 4
+ required: false
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ cidr:
+ description: The cidr block of the requested network.
+ type: string
+ required: false
+ start_ip:
+ description: The IP address to be used as the 1st one in a pool of addresses derived from the cidr block full IP range.
+ type: string
+ required: false
+ end_ip:
+ description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range.
+ type: string
+ required: false
+ gateway_ip:
+ description: The gateway IP address.
+ type: string
+ required: false
+ network_name:
+ description: An Identifier that represents an existing Network instance in the underlying cloud infrastructure - OR - be used as the name of the new created network.
+ type: string
+ required: false
+ network_id:
+ description: An Identifier that represents an existing Network instance in the underlying cloud infrastructure. This property is mutually exclusive with all other properties except network_name.
+ type: string
+ required: false
+ segmentation_id:
+ description: A segmentation identifier in the underlying cloud infrastructure (e.g., VLAN id, GRE tunnel id). If the segmentation_id is specified, the network_type or physical_network properties should be provided as well.
+ type: string
+ required: false
+ network_type:
+ description: Optionally, specifies the nature of the physical network in the underlying cloud infrastructure. Examples are flat, vlan, gre or vxlan. For flat and vlan types, physical_network should be provided too.
+ type: string
+ required: false
+ physical_network:
+ description: Optionally, identifies the physical network on top of which the network is implemented, e.g. physnet1. This property is required if network_type is flat or vlan.
+ type: string
+ required: false
+ dhcp_enabled:
+ description: Indicates the TOSCA container to create a virtual network instance with or without a DHCP service.
+ type: boolean
+ default: true
+ required: false
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
+
+ tosca.nodes.WebServer:
+ derived_from: tosca.nodes.SoftwareComponent
+ description: This TOSCA WebServer Node Type represents an abstract software component or service that is capable of hosting and providing management operations for one or more WebApplication nodes.
+ capabilities:
+ data_endpoint:
+ type: tosca.capabilities.Endpoint
+ admin_endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.WebApplication
+
+ tosca.nodes.Container.Application:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Container Application node represents an application that requires Container-level virtualization technology.
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ relationship: tosca.relationships.HostedOn
+
+ tosca.nodes.Container.Runtime:
+ derived_from: tosca.nodes.SoftwareComponent
+ description: The TOSCA Container Runtime node represents operating system-level virtualization technology used to run multiple application services on a single Compute host.
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ scalable:
+ type: tosca.capabilities.Scalable
+
+ tosca.nodes.SoftwareComponent:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA SoftwareComponent node represents a generic software component that can be managed and run by a TOSCA Compute Node Type.
+ properties:
+ component_version:
+ description: The optional software component's version.
+ type: version
+ required: false
+ admin_credential:
+ description: The optional credential that can be used to authenticate to the software component.
+ type: tosca.datatypes.Credential
+ required: false
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.Compute
+ relationship: tosca.relationships.HostedOn
+
+ tosca.nodes.BlockStorage:
+ derived_from: tosca.nodes.Root
+ description: ''
+ properties:
+ size:
+ description: The requested storage size (default unit is MB).
+ type: scalar-unit.size
+ constraints:
+ - greater_or_equal: 1 MB
+ volume_id:
+ description: ID of an existing volume (that is in the accessible scope of the requesting application).
+ type: string
+ required: false
+ snapshot_id:
+ description: Some identifier that represents an existing snapshot that should be used when creating the block storage (volume).
+ type: string
+ required: false
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+
+ tosca.nodes.network.Port:
+ derived_from: tosca.nodes.Root
+ description: |-
+ The TOSCA Port node represents a logical entity that associates between Compute and Network normative types.
+ The Port node type effectively represents a single virtual NIC on the Compute node instance.
+ properties:
+ ip_address:
+ description: Allow the user to set a fixed IP address. Note that this address is a request to the provider which they will attempt to fulfill but may not be able to dependent on the network the port is associated with.
+ type: string
+ required: false
+ order:
+ description: 'The order of the NIC on the compute instance (e.g. eth2). Note:
+ when binding more than one port to a single compute (aka multi vNICs) and
+ ordering is desired, it is *mandatory* that all ports will be set with an
+ order value and. The order values must represent a positive, arithmetic
+ progression that starts with 0 (e.g. 0, 1, 2, ..., n).'
+ type: integer
+ default: 0
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ is_default:
+ description: Set is_default=true to apply a default gateway route on the running compute instance to the associated network gateway. Only one port that is associated to single compute node can set as default=true.
+ type: boolean
+ default: false
+ required: false
+ ip_range_start:
+ description: Defines the starting IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
+ type: string
+ required: false
+ ip_range_end:
+ description: Defines the ending IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
+ type: string
+ required: false
+ attributes:
+ ip_address:
+ description: The IP address would be assigned to the associated compute instance.
+ type: string
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+
+ tosca.nodes.LoadBalancer:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Load Balancer node represents logical function that be used in conjunction with a Floating Address to distribute an application's traffic (load) across a number of instances of the application (e.g., for a clustered or scaled application).
+ capabilities:
+ client:
+ description: The Floating (IP) client's on the public network can connect to.
+ type: tosca.capabilities.Endpoint.Public
+ occurrences:
+ - 0
+ - UNBOUNDED
+ requirements:
+ - application:
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.RoutesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.Database:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Database node represents a logical database that can be managed and hosted by a TOSCA DBMS node.
+ properties:
+ name:
+ description: The logical database Name.
+ type: string
+ port:
+ description: The port the database service will use to listen for incoming data and requests.
+ type: integer
+ required: false
+ user:
+ description: The special user account used for database administration.
+ type: string
+ required: false
+ password:
+ description: The password associated with the user account provided in the 'user' property.
+ type: string
+ required: false
+ capabilities:
+ database_endpoint:
+ type: tosca.capabilities.Endpoint.Database
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.DBMS
+ relationship: tosca.relationships.HostedOn
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml
new file mode 100644
index 0000000000..d40a524499
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/policies.yml
@@ -0,0 +1,43 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/policies.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+policy_types:
+ tosca.policies.Root:
+ description: This is the default (root) TOSCA Policy Type definition that all other TOSCA base Policy Types derive from.
+
+ tosca.policies.Update:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to govern update of TOSCA nodes or groups of nodes.
+
+ tosca.policies.Placement:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to govern placement of TOSCA nodes or groups of nodes.
+
+ tosca.policies.Performance:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to declare performance requirements for TOSCA nodes or groups of nodes.
+
+ tosca.policies.Scaling:
+ derived_from: tosca.policies.Root
+ description: This is the default (root) TOSCA Policy Type definition that is used to govern scaling of TOSCA nodes or groups of nodes.
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml
new file mode 100644
index 0000000000..8a287d0b0c
--- /dev/null
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/tosca/relationships.yml
@@ -0,0 +1,106 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ filename: tosca/relationships.yml
+ version: '1.0'
+
+imports:
+- tosca_index:
+ file: _index.yml
+
+relationship_types:
+ tosca.relationships.Root:
+ description: This is the default (root) TOSCA Relationship Type definition that all other TOSCA Relationship Types derive from.
+ attributes:
+ tosca_id:
+ description: A unique identifier of the realized instance of a Relationship Template that derives from any TOSCA normative type.
+ type: string
+ tosca_name:
+ description: This attribute reflects the name of the Relationship Template as defined in the TOSCA service template. This name is not unique to the realized instance model of corresponding deployed application as each template in the model can result in one or more instances (e.g., scaled) when orchestrated to a provider environment.
+ type: string
+ state:
+ description: The state of the relationship instance.
+ type: string
+ default: initial
+ interfaces:
+ Configure:
+ type: tosca.interfaces.relationship.Configure
+
+ tosca.relationships.RoutesTo:
+ derived_from: tosca.relationships.ConnectsTo
+ description: This type represents an intentional network routing between two Endpoints in different networks.
+ valid_target_types:
+ - tosca.capabilities.Endpoint
+
+ tosca.relationships.network.LinksTo:
+ derived_from: tosca.relationships.DependsOn
+ description: This relationship type represents an association relationship between Port and Network node types.
+ valid_target_types:
+ - tosca.capabilities.network.Linkable
+
+ tosca.relationships.AttachesTo:
+ derived_from: tosca.relationships.Root
+ description: This type represents an attachment relationship between two nodes. For example, an AttachesTo relationship type would be used for attaching a storage node to a Compute node.
+ valid_target_types:
+ - tosca.capabilities.Attachment
+ properties:
+ location:
+ description: 'The relative location (e.g., path on the file system), which
+ provides the root location to address an attached node. e.g., a mount point
+ / path such as ''/usr/data''. Note: The user must provide it and it cannot
+ be "root".'
+ type: string
+ constraints:
+ - min_length: 1
+ device:
+ description: The logical device name which for the attached device (which is represented by the target node in the model). e.g., '/dev/hda1'.
+ type: string
+ required: false
+ attributes:
+ device:
+ description: 'The logical name of the device as exposed to the instance. Note:
+ A runtime property that gets set when the model gets instantiated by the
+ orchestrator.'
+ type: string
+
+ tosca.relationships.network.BindsTo:
+ derived_from: tosca.relationships.DependsOn
+ description: This type represents a network association relationship between Port and Compute node types.
+ valid_target_types:
+ - tosca.capabilities.network.Bindable
+
+ tosca.relationships.HostedOn:
+ derived_from: tosca.relationships.Root
+ description: This type represents a hosting relationship between two nodes.
+ valid_target_types:
+ - tosca.capabilities.Container
+
+ tosca.relationships.DependsOn:
+ derived_from: tosca.relationships.Root
+ description: This type represents a general dependency relationship between two nodes.
+ valid_target_types:
+ - tosca.capabilities.Node
+
+ tosca.relationships.ConnectsTo:
+ derived_from: tosca.relationships.Root
+ description: This type represents a network connection relationship between two nodes.
+ valid_target_types:
+ - tosca.capabilities.Endpoint
+ properties:
+ credential:
+ type: tosca.datatypes.Credential
+ required: false
diff --git a/common/pom.xml b/common/pom.xml
new file mode 100644
index 0000000000..39c8c90fd9
--- /dev/null
+++ b/common/pom.xml
@@ -0,0 +1,233 @@
+<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.common</groupId>
+ <name>openecomp-common-lib</name>
+ <artifactId>openecomp-common-lib</artifactId>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>sdc-onboarding</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../onboarding</relativePath>
+ </parent>
+
+ <properties>
+ <aspectj.version>1.8.7</aspectj.version>
+ </properties>
+
+ <modules>
+ <module>openecomp-logging-lib</module>
+ <module>openecomp-sdc-artifact-generator-lib</module>
+ <module>openecomp-common-configuration-management</module>
+ <module>openecomp-tosca-datatype</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.10</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>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>${commons.codec.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.datastax.cassandra</groupId>
+ <artifactId>cassandra-driver-core</artifactId>
+ <version>${cassandra.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.datastax.cassandra</groupId>
+ <artifactId>cassandra-driver-mapping</artifactId>
+ <version>${cassandra.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>2.0-m10</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>${gson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.8.8</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${aspectj.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>${servlet.version}</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>${commons.beanutils.version}</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
+ <dependency>
+ <groupId>com.beust</groupId>
+ <artifactId>jcommander</artifactId>
+ <version>${jcommander.version}</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/commons-digester/commons-digester -->
+ <dependency>
+ <groupId>commons-digester</groupId>
+ <artifactId>commons-digester</artifactId>
+ <version>${commons.digester.version}</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.beanshell/bsh -->
+ <dependency>
+ <groupId>org.beanshell</groupId>
+ <artifactId>bsh</artifactId>
+ <version>${bsh.version}</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/com.google.code.findbugs/annotations -->
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>annotations</artifactId>
+ <version>3.0.1u2</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/cglib/cglib-nodep -->
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <version>${cglib.nodep.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <build>
+ <plugins>
+
+ <!-- ================================================== -->
+ <!-- Set the JDK compiler version. -->
+ <!-- ================================================== -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${mvn.compiler.version}</version>
+ <inherited>true</inherited>
+ <configuration>
+ <source>${java.source}</source>
+ <target>${java.target}</target>
+ </configuration>
+ </plugin>
+ <!-- blackduck maven plugin -->
+
+ <!--<plugin>
+ <groupId>com.blackducksoftware.integration</groupId>
+ <artifactId>hub-maven-plugin</artifactId>
+ <version>1.0.4</version>
+ <inherited>false</inherited>
+ <configuration>
+ <target>${project.basedir}</target>
+ </configuration>
+ <executions>
+ <execution>
+ <id>create-bdio-file</id>
+ <phase>package</phase>
+ <goals>
+ <goal>createHubOutput</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>-->
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <version>${mvn.license.version}</version>
+ <configuration>
+ <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
+ <processStartTag>============LICENSE_START=======================================================</processStartTag>
+ <processEndTag>============LICENSE_END=========================================================</processEndTag>
+ <sectionDelimiter>================================================================================</sectionDelimiter>
+ <licenseName>apache_v2</licenseName>
+ <inceptionYear>2017</inceptionYear>
+ <organizationName>AT&amp;T Intellectual Property. All rights reserved.</organizationName>
+ <projectName>SDC</projectName>
+ <canUpdateCopyright>true</canUpdateCopyright>
+ <canUpdateDescription>true</canUpdateDescription>
+ <canUpdateLicense>true</canUpdateLicense>
+ <emptyLineAfterHeader>true</emptyLineAfterHeader>
+ <verbose>false</verbose>
+ <includes>
+ <include>**/*.java</include>
+ <include>**/*.js</include>
+ <include>**/*.ts</include>
+ </includes>
+ <roots>
+ <root>src</root>
+ <root>app</root>
+ <root>server-mock</root>
+ <root>typings</root>
+ </roots>
+ </configuration>
+ <executions>
+ <execution>
+ <id>first</id>
+ <goals>
+ <goal>update-file-header</goal>
+ </goals>
+ <!--phase>process-sources</phase-->
+ </execution>
+ </executions>
+ </plugin>
+
+
+ </plugins>
+
+ </build>
+
+</project>
diff --git a/common/readMe.txt b/common/readMe.txt
new file mode 100644
index 0000000000..dbe8e4233a
--- /dev/null
+++ b/common/readMe.txt
@@ -0,0 +1,118 @@
+# OpenECOMP Common
+
+---
+---
+
+# Introduction
+
+ASDC is required to distribute the Service Definition model to different systems of the OPENECOMP platform. The systems interested in the Service model will subscribe to Artifact Generator. Artifact Generator is responsible for converting its internal Service definition model to the data model required by the different subscribing systems.
+
+In 1707, Artifact Generator will generate artifacts only for A&AI.
+
+# Compiling Common
+
+###Common can be compiled easily with a `mvn clean install` at the following locations :
+
+#### common\openecomp-sdc-artifact-generator-lib
+#### common\openecomp-logging-lib
+
+### For artifact generator, the resultant jar files are located at :
+
+#### common\openecomp-sdc-artifact-generator-lib\openecomp-sdc-artifact-generator-api\target
+#### common\openecomp-sdc-artifact-generator-lib\openecomp-sdc-artifact-generator-core\target
+
+### For openecomp-logging, the resultant jar files are located at :
+
+#### common\openecomp-logging-lib\openecomp-logging-api\target
+#### common\openecomp-logging-lib\openecomp-logging-core\target
+
+### For configuration-management, the resultant jar files are located at :
+
+#### common\openecomp-common-configuration-management\openecomp-configuration-management-api\target
+#### common\openecomp-common-configuration-management\openecomp-configuration-management-cli\target
+#### common\openecomp-common-configuration-management\openecomp-configuration-management-core\target
+
+
+
+
+
+# Accessing Common
+
+### Artifact Generator
+
+#### api :
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-api</artifactId>
+ <version>?</version>
+ </dependency>
+
+#### core :
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-core</artifactId>
+ <version>?</version>
+ </dependency>
+
+### Logging
+
+#### api :
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-api</artifactId>
+ <version>?</version>
+ </dependency>
+
+#### core :
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-logging-core</artifactId>
+ <version>?</version>
+ </dependency>
+
+### Configuration Management
+
+#### api :
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-api</artifactId>
+ <version>?</version>
+ </dependency>
+
+#### cli :
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-cli</artifactId>
+ <version>?</version>
+ </dependency>
+
+#### core :
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>?</version>
+ </dependency>
+
+### NOTE : Artifact Generator generates artifacts using method 'generateArtifact' that takes the following arguments as input :
+
+#### input(Specifies the list of input files as models)
+#### overridingConfiguration(Specifies the configuration data for invoking generators)
+
+The output will be a list of artifacts that are generated by the generators as defined in the API signature.
+
+# Logging
+
+OpenECOMP Common supports EELF Logger, which is of the following types :
+
+### Error
+### Debug
+### Metrics
+### Audit
+