aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl')
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml82
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup127
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/EnrichmentInfo.java64
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/factory/EnricherHandlerFactory.java8
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerFactoryImpl.java8
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerImpl.java62
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java100
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java236
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricher.java144
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/VspInformationArtifactEnricher.java134
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java243
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java112
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentInfo.java47
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java123
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ToscaEnricher.java42
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java12
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/Enricher.java19
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/EnricherHandler.java14
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/ExternalArtifactEnricherInterface.java (renamed from openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/SnmpEnricher.java)18
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/resources/ExternalArtifactConfiguration.json5
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java167
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java128
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java162
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java206
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java115
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml1134
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/PortGlobalTypesServiceTemplate.yaml46
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichComputeCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml1134
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/MainServiceTemplate.yaml479
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/Nested_pd_serverServiceTemplate.yaml378
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml483
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/in/MainServiceTemplate.yaml476
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml478
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/MainServiceTemplate.yaml479
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/Nested_pd_serverServiceTemplate.yaml378
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/out/MainServiceTemplate.yaml481
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichMib/MIB.zipbin0 -> 7029 bytes
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortCeilometerOutput/PortGlobalTypesServiceTemplate.yaml46
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichProcess/artifact_1kb.txt2
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingComputeGlobalTypeServiceTemplates/ComputeGlobalTypesServiceTemplate.yaml11
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingPortGlobalTypeServiceTemplates/PortGlobalTypesServiceTemplate.yaml11
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/GlobalSubstitutionTypesServiceTemplate.yaml518
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/_index.yml13
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/data.yml762
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/groups.yml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/nodes.yml1191
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/_index.yml17
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/capabilities.yml77
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/data.yml475
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/groups.yml61
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml519
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/relationships.yml36
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/_index.yml21
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/artifacts.yml31
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/capabilities.yml232
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/data.yml179
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/groups.yml13
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/interfaces.yml42
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/nodes.yml434
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/policies.yml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/relationships.yml90
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/AbstractSubstituteGlobalTypesServiceTemplate.yaml47
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CinderVolumeGlobalTypesServiceTemplate.yaml176
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CommonGlobalTypesServiceTemplate.yaml213
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailNetworkRuleGlobalTypeServiceTemplate.yaml117
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml71
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/GlobalSubstitutionTypesServiceTemplate.yaml93
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NativeTypesServiceTemplateServiceTemplate.yaml194
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronNetGlobalTypesServiceTemplate.yaml97
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronPortGlobalTypesServiceTemplate.yaml151
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronSecurityRulesGlobalTypesServiceTemplate.yaml116
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NovaServerGlobalTypesServiceTemplate.yaml249
72 files changed, 14271 insertions, 402 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
index adfa076b4c..1bc49fd4a3 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
@@ -1,9 +1,10 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
-
-
+ <name>openecomp-sdc-enrichment-impl</name>
+ <artifactId>openecomp-sdc-enrichment-impl</artifactId>
<parent>
<groupId>org.openecomp.sdc</groupId>
@@ -12,23 +13,12 @@
<relativePath>../..</relativePath>
</parent>
- <name>openecomp-sdc-enrichment-impl</name>
- <artifactId>openecomp-sdc-enrichment-impl</artifactId>
-
<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>1.1.2</version>
-
+ <version>${logback.version}</version>
</dependency>
-
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
@@ -44,11 +34,11 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>RELEASE</version>
+ <version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.openecomp.sdc</groupId>
+ <groupId>org.openecomp.core</groupId>
<artifactId>openecomp-utilities-lib</artifactId>
<version>${project.version}</version>
</dependency>
@@ -63,7 +53,7 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.openecomp.sdc</groupId>
+ <groupId>org.openecomp.core</groupId>
<artifactId>openecomp-common-lib</artifactId>
<version>${project.version}</version>
</dependency>
@@ -71,32 +61,64 @@
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<scope>test</scope>
- <version>1.10.19</version>
+ <version>${mockito.all.version}</version>
</dependency>
<dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>19.0</version>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
</dependency>
-
<dependency>
<groupId>org.openecomp.sdc</groupId>
- <artifactId>openecomp-heat-lib</artifactId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-config-lib</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openecomp.sdc</groupId>
- <artifactId>openecomp-tosca-lib</artifactId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
+ <scope>runtime</scope>
<groupId>org.openecomp.sdc</groupId>
- <artifactId>openecomp-sdc-translator-core</artifactId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <scope>test</scope>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
<version>${project.version}</version>
</dependency>
-
-
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${mvn.surefire.version}</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
-
-</project> \ No newline at end of file
+</project>
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..65e84d88dc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup
@@ -0,0 +1,127 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>openecomp-sdc-enrichment-impl</name>
+ <artifactId>openecomp-sdc-enrichment-impl</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+
+ </dependency>
+
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-config-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <scope>runtime</scope>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <scope>test</scope>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/EnrichmentInfo.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/EnrichmentInfo.java
index 17c4091a28..8f3798f764 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/EnrichmentInfo.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/EnrichmentInfo.java
@@ -28,36 +28,36 @@ import java.util.List;
import java.util.Map;
public class EnrichmentInfo {
- Map<String, List<Object>> additionalInfo = new HashMap<>();
- Map<String, EntityInfo> entityInfo = new HashMap<>(); //componentName,EntityInfo
- String key;
- Version version;
-
- public Map<String, List<Object>> getAdditionalInfo() {
- return additionalInfo;
- }
-
- public Map<String, EntityInfo> getEntityInfo() {
- return entityInfo;
- }
-
- public void addEntityInfo(String type, EntityInfo entityInfo) {
- this.entityInfo.put(type, entityInfo);
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-
- public Version getVersion() {
- return version;
- }
-
- public void setVersion(Version version) {
- this.version = version;
- }
+ Map<String, List<Object>> additionalInfo = new HashMap<>();
+ Map<String, EntityInfo> entitiesInfo = new HashMap<>();
+ String key;
+ Version version;
+
+ public Map<String, List<Object>> getAdditionalInfo() {
+ return additionalInfo;
+ }
+
+ public Map<String, EntityInfo> getEntityInfo() {
+ return entitiesInfo;
+ }
+
+ public void addEntityInfo(String entityKey, EntityInfo entityInfo) {
+ this.entitiesInfo.put(entityKey, entityInfo);
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public Version getVersion() {
+ return version;
+ }
+
+ public void setVersion(Version version) {
+ this.version = version;
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/factory/EnricherHandlerFactory.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/factory/EnricherHandlerFactory.java
index 47821f6670..1167a6df9a 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/factory/EnricherHandlerFactory.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/factory/EnricherHandlerFactory.java
@@ -20,13 +20,15 @@
package org.openecomp.sdc.enrichment.factory;
+
import org.openecomp.core.factory.api.AbstractComponentFactory;
import org.openecomp.core.factory.api.AbstractFactory;
import org.openecomp.sdc.enrichment.inter.EnricherHandler;
+
public abstract class EnricherHandlerFactory extends AbstractComponentFactory<EnricherHandler> {
- public static EnricherHandlerFactory getInstance() {
- return AbstractFactory.getInstance(EnricherHandlerFactory.class);
- }
+ public static EnricherHandlerFactory getInstance() {
+ return AbstractFactory.getInstance(EnricherHandlerFactory.class);
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerFactoryImpl.java
index 00f5c91661..9898ef678a 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerFactoryImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerFactoryImpl.java
@@ -26,8 +26,8 @@ import org.openecomp.sdc.enrichment.inter.EnricherHandler;
public class EnricherHandlerFactoryImpl extends EnricherHandlerFactory {
- @Override
- public EnricherHandler createInterface() {
- return new EnricherHandlerImpl();
- }
+ @Override
+ public EnricherHandler createInterface() {
+ return new EnricherHandlerImpl();
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerImpl.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerImpl.java
index e2e5b47d2a..a5eeece2b3 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/EnricherHandlerImpl.java
@@ -20,70 +20,26 @@
package org.openecomp.sdc.enrichment.impl;
-import org.openecomp.core.enrichment.types.EntityInfo;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.datatypes.model.AsdcModel;
-import org.openecomp.sdc.enrichment.EnrichmentInfo;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.enrichment.impl.external.artifact.ExternalArtifactEnricher;
import org.openecomp.sdc.enrichment.impl.tosca.ToscaEnricher;
import org.openecomp.sdc.enrichment.inter.Enricher;
import org.openecomp.sdc.enrichment.inter.EnricherHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-/**
- * The type Enricher handler.
- */
public class EnricherHandlerImpl implements EnricherHandler {
- private static Logger logger = LoggerFactory.getLogger(EnricherHandlerImpl.class);
- private EnrichmentInfo input;
- private AsdcModel model;
-
- @Override
- public List<Enricher> getEnrichers() {
- List<Enricher> enricherList = new ArrayList<>();
- enricherList.add(new ToscaEnricher());
- enricherList.add(new ExternalArtifactEnricher());
- return enricherList;
- }
+ private static Logger logger = (Logger) LoggerFactory.getLogger(EnricherHandlerImpl.class);
- @Override
- public Map<String, List<ErrorMessage>> enrich() {
- Map<String, List<ErrorMessage>> errors = new HashMap<>();
- Map<String, List<ErrorMessage>> enricherResponse;
- for (Enricher enricher : getEnrichers()) {
- enricher.setInput(this.input);
- enricher.setModel(this.model);
- enricherResponse = enricher.enrich();
- errors.putAll(enricherResponse);
+ @Override
+ public List<Enricher> getEnrichers() {
+ List<Enricher> enricherList = new ArrayList<>();
+ enricherList.add(new ToscaEnricher());
+ enricherList.add(new ExternalArtifactEnricher());
+ return enricherList;
}
- return errors;
- }
-
- /**
- * Adds additional input.
- *
- * @param key key
- * @param input input
- */
- public void addAdditionalInput(String key, Object input) {
- if (!this.input.getAdditionalInfo().containsKey(key)) {
- this.input.getAdditionalInfo().put(key, new ArrayList<>());
- }
- this.input.getAdditionalInfo().get(key).add(input);
- }
-
- public void addEntityInfo(String entityId, EntityInfo entityInfo) {
- this.input.getEntityInfo().put(entityId, entityInfo);
- }
- public void setModel(AsdcModel model) {
- this.model = model;
- }
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java
index a276cfba7d..3c27a0fac8 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java
@@ -20,87 +20,65 @@
package org.openecomp.sdc.enrichment.impl.external.artifact;
-import org.openecomp.core.enrichment.types.ComponentArtifactType;
-import org.openecomp.core.enrichment.types.MibInfo;
-import org.openecomp.core.model.dao.EnrichedServiceModelDao;
-import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
-import org.openecomp.core.model.types.ServiceArtifact;
-import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
-import org.openecomp.core.validation.errors.Messages;
-import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.enrichment.impl.tosca.ComponentInfo;
import org.openecomp.sdc.enrichment.inter.Enricher;
-import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.enrichment.inter.ExternalArtifactEnricherInterface;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
-import java.io.File;
-import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
public class ExternalArtifactEnricher extends Enricher {
+ private MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private static String EXTERNAL_ARTIFACT_ENRICH_CONF_FILE = "ExternalArtifactConfiguration.json";
+ private static final String EXTERNAL_ARTIFACT_ENRICH_ERROR = "ERROR_CREATING_EXTERNAL_ARTIFACTS";
+ private static final String EXTERNAL_ARTIFACT_ENRICH_ERROR_MSG =
+ "An Error has occured during enrichment of external artifacts ";
+ private static Collection<String> implementingClasses =
+ getExternalArtifactEnrichedImplClassesList();
- private static EnrichedServiceModelDao enrichedServiceModelDao =
- EnrichedServiceModelDaoFactory.getInstance().createInterface();
+ private static Collection<String> getExternalArtifactEnrichedImplClassesList() {
+ InputStream externalArtifactEnrichConfigurationJson =
+ FileUtils.getFileInputStream(EXTERNAL_ARTIFACT_ENRICH_CONF_FILE);
+ @SuppressWarnings("unchecked")
+ Map<String, String> confFileAsMap =
+ JsonUtil.json2Object(externalArtifactEnrichConfigurationJson, Map.class);
+ return confFileAsMap.values();
+ }
@Override
public Map<String, List<ErrorMessage>> enrich() {
- Map<String, List<ErrorMessage>> errors = new HashMap<>();
- input.getEntityInfo().entrySet().stream().forEach(
- entry -> enrichComponentMib(entry.getKey(), (ComponentInfo) entry.getValue(), errors));
-
- return errors;
- }
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
- private void enrichComponentMib(String componentName, ComponentInfo componentInfo,
- Map<String, List<ErrorMessage>> errors) {
-
- String vspId = input.getKey();
- Version version = input.getVersion();
- ServiceArtifact mibServiceArtifact = new ServiceArtifact();
- mibServiceArtifact.setVspId(vspId);
- mibServiceArtifact.setVersion(version);
- enrichMibFiles(mibServiceArtifact, componentInfo, errors);
- }
+ try {
+ for (String implementingClassName : implementingClasses) {
+ ExternalArtifactEnricherInterface externalArtifactEnricherInstance = getExternalArtifactEnricherInstance(implementingClassName);
+ externalArtifactEnricherInstance.enrich(this.data);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(); //// FIXME: 29-Nov-16
+ }
- private void enrichMibFiles(ServiceArtifact mibServiceArtifact, ComponentInfo componentInfo,
- Map<String, List<ErrorMessage>> errors) {
- if (componentInfo.getMibInfo() == null) {
- return;
- }
- enrichMibByType(componentInfo.getMibInfo().getSnmpTrap(), ComponentArtifactType.SNMP_TRAP,
- mibServiceArtifact, errors);
- enrichMibByType(componentInfo.getMibInfo().getSnmpPoll(), ComponentArtifactType.SNMP_POLL,
- mibServiceArtifact, errors);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return errors;
}
- private void enrichMibByType(MibInfo mibInfo, ComponentArtifactType type,
- ServiceArtifact mibServiceArtifact,
- Map<String, List<ErrorMessage>> errors) {
- if (mibInfo == null) {
- return;
- }
- FileContentHandler mibs;
- try {
- mibs = FileUtils.getFileContentMapFromZip(FileUtils.toByteArray(mibInfo.getContent()));
- } catch (IOException ioException) {
- ErrorMessage.ErrorMessageUtil
- .addMessage(mibServiceArtifact.getName() + "." + type.name(), errors)
- .add(new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage()));
- return;
- }
- Set<String> fileList = mibs.getFileList();
- for (String fileName : fileList) {
- mibServiceArtifact.setContentData(FileUtils.toByteArray(mibs.getFileContent(fileName)));
- mibServiceArtifact.setName(mibInfo.getName() + File.separator + fileName);
- enrichedServiceModelDao.storeExternalArtifact(mibServiceArtifact);
- }
+ private ExternalArtifactEnricherInterface getExternalArtifactEnricherInstance(
+ String implementingClassName) throws Exception {
+ Class<?> clazz = Class.forName(implementingClassName);
+ Constructor<?> constructor = clazz.getConstructor();
+ return (ExternalArtifactEnricherInterface) constructor.newInstance();
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java
new file mode 100644
index 0000000000..3920cc28af
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.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.sdc.enrichment.impl.external.artifact;
+
+import org.openecomp.core.enrichment.types.ArtifactCategory;
+import org.openecomp.core.enrichment.types.ArtifactType;
+import org.openecomp.core.enrichment.types.ComponentMibInfo;
+import org.openecomp.core.enrichment.types.MibInfo;
+import org.openecomp.core.model.dao.EnrichedServiceModelDao;
+import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
+import org.openecomp.core.model.types.ServiceArtifact;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.enrichment.EnrichmentInfo;
+import org.openecomp.sdc.enrichment.inter.ExternalArtifactEnricherInterface;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+
+public class MonitoringMibEnricher implements ExternalArtifactEnricherInterface {
+
+ private EnrichedServiceModelDao enrichedServiceModelDao;
+ private ComponentDao componentDao;
+ private MibDao mibDao;
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ /**
+ * Enrich map.
+ *
+ * @param enrichmentInfo the enrichmentInfo
+ * @return the map
+ */
+ public Map<String, List<ErrorMessage>> enrich(EnrichmentInfo enrichmentInfo) {
+
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ String vspId = enrichmentInfo.getKey();
+ Version version = enrichmentInfo.getVersion();
+
+ Collection<ComponentEntity> components =
+ getComponentDao().list(new ComponentEntity(vspId, version, null));
+ components
+ .forEach(componentEntry -> errors.putAll(enrichComponent(componentEntry, vspId, version)));
+
+ return errors;
+ }
+
+ Map<String, List<ErrorMessage>> enrichComponent(ComponentEntity componentEntry, String vspId,
+ Version version) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ ComponentMibInfo componentMibInfo =
+ extractComponentMibInfo(componentEntry, vspId, version, errors);
+ enrichComponentMib(componentMibInfo, vspId, version, errors);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return errors;
+ }
+
+ ComponentMibInfo extractComponentMibInfo(ComponentEntity componentEntity, String vspId,
+ Version version,
+ Map<String, List<ErrorMessage>> errors) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ String componentId = componentEntity.getId();
+ MibEntity entity = new MibEntity();
+
+ entity.setVspId(vspId);
+ entity.setVersion(version);
+ entity.setComponentId(componentId);
+ String componentName = componentEntity.getComponentCompositionData().getName();
+ ComponentMibInfo componentMibInfo = new ComponentMibInfo();
+ updComponentMibInfoByType(componentName, ArtifactType.SNMP_POLL, entity, componentMibInfo,
+ errors);
+ updComponentMibInfoByType(componentName, ArtifactType.SNMP_TRAP, entity, componentMibInfo,
+ errors);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return componentMibInfo;
+ }
+
+ void updComponentMibInfoByType(String componentName, ArtifactType type,
+ MibEntity mibEntity,
+ ComponentMibInfo componentMibInfo,
+ Map<String, List<ErrorMessage>> errors) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ String path;
+ mibEntity.setType(type);
+ Optional<MibEntity> artifact =
+ getMibDao().getByType(mibEntity);
+
+ if (!artifact.isPresent()) {
+ return;
+ }
+ path = componentName + File.separator + ArtifactCategory.DEPLOYMENT.getDisplayName()
+ + File.separator + type.name();
+ MibInfo mibInfo = new MibInfo();
+ mibInfo.setName(path);
+ mibInfo.setContent(artifact.get().getArtifact().array());
+ switch (type) {
+ case SNMP_POLL:
+ componentMibInfo.setSnmpPoll(mibInfo);
+ break;
+ case SNMP_TRAP:
+ componentMibInfo.setSnmpTrap(mibInfo);
+ break;
+ default:
+ break;
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+ void enrichComponentMib(ComponentMibInfo componentMibInfo, String vspId, Version version,
+ Map<String, List<ErrorMessage>> errors) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ ServiceArtifact mibServiceArtifact = new ServiceArtifact();
+ mibServiceArtifact.setVspId(vspId);
+ mibServiceArtifact.setVersion(version);
+ enrichMibFiles(mibServiceArtifact, componentMibInfo, errors);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+ void enrichMibFiles(ServiceArtifact mibServiceArtifact, ComponentMibInfo componentMibInfo,
+ Map<String, List<ErrorMessage>> errors) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (componentMibInfo == null) {
+ return;
+ }
+ enrichMibByType(componentMibInfo.getSnmpTrap(), ArtifactType.SNMP_TRAP, mibServiceArtifact,
+ errors);
+ enrichMibByType(componentMibInfo.getSnmpPoll(), ArtifactType.SNMP_POLL, mibServiceArtifact,
+ errors);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+ void enrichMibByType(MibInfo mibInfo, ArtifactType type, ServiceArtifact mibServiceArtifact,
+ Map<String, List<ErrorMessage>> errors) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (mibInfo == null) {
+ return;
+ }
+ FileContentHandler mibs;
+ try {
+ mibs = FileUtils.getFileContentMapFromZip(FileUtils.toByteArray(mibInfo.getContent()));
+ } catch (IOException ioException) {
+ ErrorMessage.ErrorMessageUtil
+ .addMessage(mibServiceArtifact.getName() + "." + type.name(), errors)
+ .add(new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage()));
+ return;
+ }
+ Set<String> fileList = mibs.getFileList();
+ for (String fileName : fileList) {
+ mibServiceArtifact.setContentData(FileUtils.toByteArray(mibs.getFileContent(fileName)));
+ mibServiceArtifact.setName(mibInfo.getName() + File.separator + fileName);
+ getEnrichedServiceModelDao().storeExternalArtifact(mibServiceArtifact);
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+ private EnrichedServiceModelDao getEnrichedServiceModelDao() {
+ if (enrichedServiceModelDao == null) {
+ enrichedServiceModelDao = EnrichedServiceModelDaoFactory.getInstance().createInterface();
+ }
+ return enrichedServiceModelDao;
+ }
+
+ private ComponentDao getComponentDao() {
+ if (componentDao == null) {
+ componentDao = ComponentDaoFactory.getInstance().createInterface();
+ }
+ return componentDao;
+ }
+
+ private MibDao getMibDao() {
+ if (mibDao == null) {
+ mibDao = MibDaoFactory.getInstance().createInterface();
+ }
+ return mibDao;
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricher.java
new file mode 100644
index 0000000000..b4a2815d69
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricher.java
@@ -0,0 +1,144 @@
+package org.openecomp.sdc.enrichment.impl.external.artifact;
+
+import org.openecomp.core.enrichment.types.ArtifactCategory;
+import org.openecomp.core.enrichment.types.ComponentProcessInfo;
+import org.openecomp.core.model.dao.EnrichedServiceModelDao;
+import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
+import org.openecomp.core.model.types.ServiceArtifact;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.enrichment.EnrichmentInfo;
+import org.openecomp.sdc.enrichment.inter.ExternalArtifactEnricherInterface;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessType;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ProcessArtifactEnricher implements ExternalArtifactEnricherInterface {
+
+ private VendorSoftwareProductDao vendorSoftwareProductDao;
+ //private ProcessArtifactDao processArtifactDao;
+ private ProcessDao processDao;
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private EnrichedServiceModelDao enrichedServiceModelDao;
+
+ @Override
+ public Map<String, List<ErrorMessage>> enrich(EnrichmentInfo enrichmentInfo) throws IOException {
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ String vspId = enrichmentInfo.getKey();
+ Version version = enrichmentInfo.getVersion();
+
+ Collection<ComponentEntity> components =
+ getVendorSoftwareProductDao().listComponents(vspId, version);
+ components.stream()
+ .forEach(componentEntry -> errors.putAll(enrichComponent(componentEntry,
+ vspId, version)));
+
+ return errors;
+ }
+
+ Map<String, List<ErrorMessage>> enrichComponent(ComponentEntity componentEntry, String vspId,
+ Version version) {
+ mdcDataDebugMessage.debugEntryMessage("LifeCycleOperationArtifactEnricher vspId ",
+ vspId);
+
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ enrichComponentProcessArtifact(componentEntry, vspId, version, errors);
+
+ mdcDataDebugMessage.debugExitMessage("LifeCycleOperationArtifactEnricher vspId ",
+ vspId);
+ return errors;
+ }
+
+ void enrichComponentProcessArtifact(ComponentEntity componentEntity,
+ String vspId, Version version,
+ Map<String, List<ErrorMessage>> errors) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ String componentId = componentEntity.getId();
+ ProcessEntity processEntity = new ProcessEntity(vspId, version, componentId, null);
+ final Collection<ProcessEntity> processes = getProcessDao().list(processEntity);
+
+ /*processes.stream()
+ .filter(entity -> entity.getType().equals(ProcessType.Lifecycle_Operations))
+ .forEach(entity -> {
+ ProcessArtifactEntity artifactEntity = new ProcessArtifactEntity(vspId, version,
+ componentId, entity.getId());*/
+
+ processes.stream()
+ .filter(entity -> entity.getType().equals(ProcessType.Lifecycle_Operations))
+ .forEach(entity -> {
+ ProcessEntity artifactEntity = new ProcessEntity(vspId, version,
+ componentId, entity.getId());
+
+ ProcessEntity artifactProcessEntity = getProcessDao().get(artifactEntity);
+ //ProcessArtifactEntity artifact = getProcessArtifactDao().get(artifactEntity);
+ if (artifactProcessEntity != null) {
+ String componentName = componentEntity.getComponentCompositionData().getName();
+ String path = componentName + File.separator
+ + ArtifactCategory.DEPLOYMENT.getDisplayName() + File.separator
+ + "Lifecycle Operations" + File.separator + artifactProcessEntity.getArtifactName();
+
+ ComponentProcessInfo componentProcessInfo = new ComponentProcessInfo();
+ componentProcessInfo.setName(path);
+ componentProcessInfo.setContent(artifactProcessEntity.getArtifact().array());
+
+ ServiceArtifact processServiceArtifact = new ServiceArtifact();
+ processServiceArtifact.setVspId(vspId);
+ processServiceArtifact.setVersion(version);
+ enrichServiceArtifact(componentProcessInfo, processServiceArtifact, errors);
+ }
+ });
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+ void enrichServiceArtifact(ComponentProcessInfo componentProcessInfo,
+ ServiceArtifact processServiceArtifact,
+ Map<String, List<ErrorMessage>> errors) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ processServiceArtifact.setName(componentProcessInfo.getName());
+ processServiceArtifact.setContentData(FileUtils.toByteArray(componentProcessInfo.getContent()));
+ getEnrichedServiceModelDao().storeExternalArtifact(processServiceArtifact);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+ private VendorSoftwareProductDao getVendorSoftwareProductDao() {
+ if (vendorSoftwareProductDao == null) {
+ vendorSoftwareProductDao = VendorSoftwareProductDaoFactory.getInstance().createInterface();
+ }
+ return vendorSoftwareProductDao;
+ }
+
+ private ProcessDao getProcessDao() {
+ if (processDao == null) {
+ processDao = ProcessDaoFactory.getInstance().createInterface();
+ }
+ return processDao;
+ }
+
+ private EnrichedServiceModelDao getEnrichedServiceModelDao() {
+
+ if (enrichedServiceModelDao == null) {
+ enrichedServiceModelDao = EnrichedServiceModelDaoFactory.getInstance().createInterface();
+ }
+ return enrichedServiceModelDao;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/VspInformationArtifactEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/VspInformationArtifactEnricher.java
new file mode 100644
index 0000000000..b7da22bdfb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/VspInformationArtifactEnricher.java
@@ -0,0 +1,134 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.enrichment.impl.external.artifact;
+
+
+import org.openecomp.core.enrichment.types.ArtifactCategory;
+import org.openecomp.core.enrichment.types.InformationArtifactFolderNames;
+import org.openecomp.core.model.dao.EnrichedServiceModelDao;
+import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
+import org.openecomp.core.model.types.ServiceArtifact;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.enrichment.EnrichmentInfo;
+import org.openecomp.sdc.enrichment.inter.ExternalArtifactEnricherInterface;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.InformationArtifactGeneratorFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactGenerator;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Created by Talio on 11/24/2016
+ */
+public class VspInformationArtifactEnricher implements ExternalArtifactEnricherInterface {
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private static InformationArtifactGenerator informationArtifactGenerator =
+ InformationArtifactGeneratorFactory.getInstance().createInterface();
+ private EnrichedServiceModelDao enrichedServiceModelDao =
+ EnrichedServiceModelDaoFactory.getInstance().createInterface();
+ private VendorSoftwareProductInfoDao vspInfoDao = VendorSoftwareProductInfoDaoFactory
+ .getInstance().createInterface();
+ private OrchestrationTemplateDao orchestrationTemplateDataDao =
+ OrchestrationTemplateDaoFactory.getInstance().createInterface();
+
+ public VspInformationArtifactEnricher() {
+ }
+
+ public Map<String, List<ErrorMessage>> enrich(EnrichmentInfo enrichmentInfo)
+ throws IOException {
+
+ String vspId = enrichmentInfo.getKey();
+ Version version = enrichmentInfo.getVersion();
+ Map<String, List<ErrorMessage>> errors = enrichInformationArtifact(vspId, version);
+
+ return errors;
+ }
+
+ private Map<String, List<ErrorMessage>> enrichInformationArtifact(String vspId, Version version)
+ throws IOException {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ ByteBuffer infoArtifactByteBuffer = ByteBuffer.wrap(informationArtifactGenerator.generate(
+ vspId, version).getBytes());
+
+ if (Objects.isNull(infoArtifactByteBuffer)) {
+ List<ErrorMessage> errorList = new ArrayList<>();
+ errorList.add(new ErrorMessage(ErrorLevel.ERROR, String.format(
+ "Cannot enrich information artifact for vendor software product with id %s and version %s",
+ vspId, version.toString())));
+ //TODO: add error to map (what is the key?)
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return errors;
+ }
+
+ enrichInformationArtifact(vspId, version, infoArtifactByteBuffer);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return errors;
+ }
+
+ private void enrichInformationArtifact(String vspId, Version version,
+ ByteBuffer infoArtifactByteBuffer) {
+ ServiceArtifact infoArtifactServiceArtifact = new ServiceArtifact();
+
+ VspDetails vspDetails = getVspDetails(vspId, version);
+
+ String vspName = vspDetails.getName();
+
+
+ infoArtifactServiceArtifact.setVspId(vspId);
+ infoArtifactServiceArtifact.setVersion(version);
+ infoArtifactServiceArtifact
+ .setName(ArtifactCategory.INFORMATIONAL.getDisplayName() + File.separator
+ + InformationArtifactFolderNames.Guide + File.separator + String.format(
+ VendorSoftwareProductConstants
+ .INFORMATION_ARTIFACT_NAME,
+ vspName));
+ infoArtifactServiceArtifact.setContentData(infoArtifactByteBuffer.array());
+
+ enrichedServiceModelDao.storeExternalArtifact(infoArtifactServiceArtifact);
+
+ }
+ public VspDetails getVspDetails(String vspId,Version version){
+ VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId,version));
+ vspDetails.setValidationData(orchestrationTemplateDataDao.getValidationData(vspId,version));
+ return vspDetails;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java
new file mode 100644
index 0000000000..d75c83f24c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java
@@ -0,0 +1,243 @@
+package org.openecomp.sdc.enrichment.impl.tosca;
+
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VM_TYPE_TAG;
+import static org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType.NATIVE_NODE;
+import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE;
+import static org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType.NATIVE_DEPENDS_ON;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
+
+import org.apache.commons.lang3.StringUtils;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class AbstractSubstituteToscaEnricher {
+ private ToscaAnalyzerService toscaAnalyzerService ;
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private ComponentQuestionnaireData componentQuestionnaireData;
+
+
+ public Map<String,List<ErrorMessage>> enrich(ToscaServiceModel toscaModel, String vspId, Version
+ version) {
+
+ mdcDataDebugMessage.debugEntryMessage(vspId, version.toString());
+
+ componentQuestionnaireData = getComponentQuestionnaireData();
+ toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+
+ Map<String, Map<String, Object>> componentProperties =
+ componentQuestionnaireData.getPropertiesfromCompQuestionnaire(vspId, version);
+
+ final Map<String, List<String>> sourceToTargetDependencies =
+ componentQuestionnaireData.populateDependencies(vspId, version,
+ componentQuestionnaireData.getSourceToTargetComponent());
+
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+
+ final ServiceTemplate serviceTemplate = toscaModel.getServiceTemplates()
+ .get(toscaModel.getEntryDefinitionServiceTemplate());
+
+ if (serviceTemplate == null) return errors;
+
+ final Map<String, NodeTemplate> node_templates =
+ serviceTemplate.getTopology_template().getNode_templates();
+
+ final Map<String, List<String>> componentDisplayNameToNodeTempalteIds =
+ populateAllNodeTemplateIdForComponent(node_templates, serviceTemplate, toscaModel);
+
+ node_templates.keySet()
+ .stream()
+ .forEach(nodeTemplateId -> {
+ final Optional<NodeTemplate> nodeTemplateById =
+ toscaAnalyzerService.getNodeTemplateById(serviceTemplate, nodeTemplateId);
+ final NodeTemplate nodeTemplate =
+ nodeTemplateById.isPresent() ? nodeTemplateById.get() : null;
+
+ if (toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE, serviceTemplate,
+ toscaModel)) {
+
+ String componentDisplayName = getComponentDisplayName(nodeTemplateId);
+
+ setProperty(nodeTemplate, VM_TYPE_TAG, componentDisplayName);
+
+ if (componentProperties != null && componentProperties.containsKey
+ (componentDisplayName)) {
+ final String mandatory =
+ getValueFromQuestionnaireDetails(componentProperties, componentDisplayName,
+ MANDATORY);
+
+ boolean isServiceTemplateFilterNotExists = false;
+ if (!StringUtils.isEmpty(mandatory)) {
+ Map innerProps = (Map<String, Object>) nodeTemplate.getProperties()
+ .get(SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
+
+ if (innerProps == null) {
+ innerProps = new HashMap<String, Object>();
+ isServiceTemplateFilterNotExists = true;
+ }
+
+ innerProps.put(MANDATORY, getValue(mandatory));
+
+ if(isServiceTemplateFilterNotExists)
+ nodeTemplate.getProperties().put(SERVICE_TEMPLATE_FILTER_PROPERTY_NAME,
+ innerProps);
+ }
+
+ setProperty(nodeTemplate, HIGH_AVAIL_MODE, getValueFromQuestionnaireDetails
+ (componentProperties, componentDisplayName, HIGH_AVAIL_MODE));
+
+ setProperty(nodeTemplate, VFC_NAMING_CODE, getValueFromQuestionnaireDetails
+ (componentProperties, componentDisplayName, VFC_NAMING_CODE));
+
+
+ if(componentProperties.get(componentDisplayName).get(MIN_INSTANCES) != null) {
+ nodeTemplate.getProperties().put(MIN_INSTANCES,
+ componentProperties.get(componentDisplayName).get(MIN_INSTANCES));
+ }
+
+ if(componentProperties.get(componentDisplayName).get(MAX_INSTANCES) != null) {
+ nodeTemplate.getProperties().put(MAX_INSTANCES,
+ componentProperties.get(componentDisplayName).get(MAX_INSTANCES));
+ }
+ }
+
+ enrichRequirements(sourceToTargetDependencies, componentDisplayName, nodeTemplate,
+ componentDisplayNameToNodeTempalteIds);
+ }
+ });
+
+ mdcDataDebugMessage.debugExitMessage(vspId, version.toString());
+ return errors;
+ }
+
+ private Map<String,List<String>> populateAllNodeTemplateIdForComponent(Map<String,
+ NodeTemplate> node_templates, ServiceTemplate serviceTemplate, ToscaServiceModel
+ toscaModel) {
+
+
+ Map<String,List<String>> componentDisplayNameToNodeTempalteIds = new HashMap<String,
+ List<String>>();
+
+ //set dependency target
+ node_templates.keySet()
+ .stream()
+ .forEach(nodeTemplateId -> {
+
+ final Optional<NodeTemplate> nodeTemplateById =
+ toscaAnalyzerService.getNodeTemplateById(serviceTemplate, nodeTemplateId);
+ final NodeTemplate nodeTemplate =
+ nodeTemplateById.isPresent() ? nodeTemplateById.get() : null;
+
+ if (toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE, serviceTemplate,
+ toscaModel)) {
+
+ String componentDisplayName = getComponentDisplayName(nodeTemplateId);
+
+ if (componentDisplayNameToNodeTempalteIds.containsKey(componentDisplayName)) {
+ componentDisplayNameToNodeTempalteIds.get(componentDisplayName).add(nodeTemplateId);
+ } else {
+ List<String> nodeTemplateIds = new ArrayList<String>();
+ nodeTemplateIds.add(nodeTemplateId);
+ componentDisplayNameToNodeTempalteIds.put(componentDisplayName, nodeTemplateIds);
+ }
+
+ }
+ });
+
+ return componentDisplayNameToNodeTempalteIds;
+ }
+
+ private void enrichRequirements(Map<String, List<String>> sourceToTargetDependencies,
+ String componentDisplayName, NodeTemplate nodeTemplate,
+ Map<String, List<String>> componentDisplayNameToNodeTempalteIds) {
+ List<Map<String, RequirementAssignment>> requirements =
+ nodeTemplate.getRequirements();
+
+ if(requirements == null) {
+ requirements = new ArrayList<Map<String, RequirementAssignment>>();
+ }
+
+ final List<String> targets = sourceToTargetDependencies.get(componentDisplayName);
+ if(targets != null) {
+ for (String target : targets) {
+ List<String> targetNodeTemplateIds = componentDisplayNameToNodeTempalteIds.get(target);
+ if(targetNodeTemplateIds != null) {
+ for (String targetNodeTemplateId : targetNodeTemplateIds) {
+ Map<String, RequirementAssignment> requirement = new HashMap<String,
+ RequirementAssignment>();
+ RequirementAssignment requirementAssignment = new RequirementAssignment();
+ requirementAssignment.setCapability(NATIVE_NODE);
+ requirementAssignment.setRelationship(NATIVE_DEPENDS_ON);
+ requirementAssignment.setNode(targetNodeTemplateId);
+ requirement.put("dependency", requirementAssignment);
+ requirements.add(requirement);
+ }
+ }
+ }
+ }
+
+ if (!requirements.isEmpty())
+ nodeTemplate.setRequirements(requirements);
+ }
+
+ private String getComponentDisplayName(String nodeTemplateId ) {
+ String componentDisplayName = null;
+ if (nodeTemplateId.contains(ABSTRACT_NODE_TEMPLATE_ID_PREFIX)) {
+ String removedPrefix = nodeTemplateId.split(ABSTRACT_NODE_TEMPLATE_ID_PREFIX)[1];
+ final String[] removedSuffix = removedPrefix.split("_\\d");
+ componentDisplayName = removedSuffix[0];
+ }
+ return componentDisplayName;
+ }
+
+ private String getValueFromQuestionnaireDetails(
+ Map<String, Map<String, Object>> componentTypetoParams, String componentDisplayName, String
+ propertyName) {
+ return (String) componentTypetoParams.get(componentDisplayName).get(propertyName);
+ }
+
+ private void setProperty(NodeTemplate nodeTemplate, String key, String value) {
+ if (!StringUtils.isEmpty(value)) {
+ //YamlUtil throws IllegalStateException("duplicate key: " + key) if key is already present.
+ // So first removing and then populating same key with new updated value
+ nodeTemplate.getProperties().remove(key);
+ nodeTemplate.getProperties().put(key, value);
+ }
+ }
+
+ private Boolean getValue(String value) {
+ String returnValue = null;
+ switch (value) {
+ case "YES" :
+ return true;
+ case "NO" :
+ return false;
+ default: return null;
+ }
+ }
+
+ private ComponentQuestionnaireData getComponentQuestionnaireData() {
+ if (componentQuestionnaireData == null) {
+ componentQuestionnaireData = new ComponentQuestionnaireData();
+ }
+ return componentQuestionnaireData;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java
deleted file mode 100644
index eb79787b59..0000000000
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.enrichment.impl.tosca;
-
-import org.apache.commons.collections4.MapUtils;
-import org.openecomp.core.enrichment.types.CeilometerInfo;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.enrichment.EnrichmentInfo;
-import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
-import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
-import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
-import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
-import org.openecomp.sdc.tosca.datatypes.model.CapabilityType;
-import org.openecomp.sdc.tosca.datatypes.model.NodeType;
-import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
-import org.openecomp.sdc.tosca.services.ToscaUtil;
-import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
-import org.openecomp.sdc.translator.services.heattotosca.globaltypes.CommonGlobalTypes;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class CeilometerEnricher {
- /**
- * Enrich map.
- *
- * @param toscaModel the tosca model
- * @param modelNodeType the model node type
- * @param input the input
- * @return the map
- */
- public static Map<String, List<ErrorMessage>> enrich(ToscaServiceModel toscaModel,
- Map<String, List<NodeType>> modelNodeType,
- EnrichmentInfo input) {
- Map<String, List<ErrorMessage>> errors = new HashMap<>();
- input.getEntityInfo().entrySet().stream().forEach(
- entry -> enrichNodeType(toscaModel, (ComponentInfo) entry.getValue(),
- modelNodeType.get(entry.getKey())));
-
- return errors;
- }
-
- private static void enrichNodeType(ToscaServiceModel toscaModel, ComponentInfo componentInfo,
- List<NodeType> nodeTypes) {
-
- for (CeilometerInfo ceilometerInfo : componentInfo.getCeilometerInfo()
- .getCeilometerInfoList()) {
- String capabilityId = ceilometerInfo.getName();
-
- Map<String, Object> properties = getCeilometerProperties(ceilometerInfo);
-
- //CapabilityType capabilityType = CommonGlobalTypes.createServiceTemplate()
- // .getCapability_types().
- // get(ToscaCapabilityType.METRIC_CEILOMETER.getDisplayName());
- //CapabilityType metricCapabilityType = CommonGlobalTypes.createServiceTemplate().
- // getCapability_types().get(ToscaCapabilityType.METRIC.getDisplayName());
- ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
- CapabilityType capabilityType = (CapabilityType) toscaAnalyzerService
- .getFlatEntity(ToscaElementTypes.CAPABILITY_TYPE,
- ToscaCapabilityType.METRIC_CEILOMETER.getDisplayName(),
- CommonGlobalTypes.createServiceTemplate(), toscaModel);
-
-
- nodeTypes.stream().forEach(nodeType ->
- addCapability(nodeType, capabilityId, ToscaUtil
- .convertTypeToDefinition(ToscaCapabilityType.METRIC_CEILOMETER.getDisplayName(),
- capabilityType, properties, ceilometerInfo.getDescription())));
- }
- }
-
- private static Map<String, Object> getCeilometerProperties(CeilometerInfo ceilometerInfo) {
- Map<String, Object> properties = new HashMap<>();
- properties.put("name", ceilometerInfo.getName());
- properties.put("type", ceilometerInfo.getType());
- properties.put("unit", ceilometerInfo.getUnit());
- if (ceilometerInfo.getCategory() != null) {
- properties.put("category", ceilometerInfo.getCategory());
- }
- return properties;
- }
-
- private static void addCapability(NodeType nodeType, String capabilityId,
- CapabilityDefinition capabilityDefinition) {
- if (MapUtils.isEmpty(nodeType.getCapabilities())) {
- nodeType.setCapabilities(new HashMap<>());
- }
- //clean unnecessary info
- capabilityDefinition.setAttributes(null);
- capabilityDefinition.setOccurrences(null);
-
- nodeType.getCapabilities().put(capabilityId, capabilityDefinition);
- }
-}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentInfo.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentInfo.java
deleted file mode 100644
index 0a1f3d36ff..0000000000
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentInfo.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.enrichment.impl.tosca;
-
-import org.openecomp.core.enrichment.types.ComponentCeilometerInfo;
-import org.openecomp.core.enrichment.types.ComponentMibInfo;
-import org.openecomp.core.enrichment.types.EntityInfo;
-
-public class ComponentInfo implements EntityInfo {
-
- private ComponentCeilometerInfo ceilometerInfo;
- private ComponentMibInfo mibInfo;
-
- public ComponentCeilometerInfo getCeilometerInfo() {
- return ceilometerInfo;
- }
-
- public void setCeilometerInfo(ComponentCeilometerInfo ceilometerInfo) {
- this.ceilometerInfo = ceilometerInfo;
- }
-
- public ComponentMibInfo getMibInfo() {
- return mibInfo;
- }
-
- public void setMibInfo(ComponentMibInfo mibInfo) {
- this.mibInfo = mibInfo;
- }
-}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
new file mode 100644
index 0000000000..7457c36701
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
@@ -0,0 +1,123 @@
+package org.openecomp.sdc.enrichment.impl.tosca;
+
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.ComponentQuestionnaire;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ComponentQuestionnaireData {
+
+ ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface();
+ ComponentDependencyModelDao componentDependencyModelDao = ComponentDependencyModelDaoFactory.getInstance()
+ .createInterface();
+
+ private Map<String,String> sourceToTargetComponent;
+
+ public Map<String,String> getSourceToTargetComponent() {
+ return sourceToTargetComponent;
+ }
+
+ public void setSourceToTargetComponent(Map<String,String> sourceToTargetComponent) {
+ this.sourceToTargetComponent = sourceToTargetComponent;
+ }
+
+ public Map<String, Map<String, Object>> getPropertiesfromCompQuestionnaire(String key,
+ Version version) {
+ Map<String, Map<String,Object>> componentProperties =
+ new HashMap<String, Map<String,Object>>();
+
+ ComponentEntity entity = new ComponentEntity(key, version, null);
+ final Collection<ComponentEntity> componentEntities =
+ componentDao.listCompositionAndQuestionnaire(key, version);
+
+ Map<String,String> sourceToTarget = new HashMap<String, String>();
+
+ for (ComponentEntity component : componentEntities) {
+ Map<String, Object> questionnaireParams = new HashMap<String, Object>();
+
+ final ComponentQuestionnaire componentQuestionnaire =
+ JsonUtil.json2Object(component.getQuestionnaireData(), ComponentQuestionnaire.class);
+
+ final ComponentData componentData =
+ JsonUtil.json2Object(component.getCompositionData(), ComponentData.class);
+
+ sourceToTarget.put(component.getId(), componentData.getDisplayName());
+
+ String vfc_code = componentData != null ? componentData.getVfcCode() : null;
+ questionnaireParams.put(VFC_NAMING_CODE, vfc_code);
+
+ if (componentQuestionnaire.getHighAvailabilityAndLoadBalancing() != null ) {
+ String mandatory = componentQuestionnaire.getHighAvailabilityAndLoadBalancing()
+ .getIsComponentMandatory();
+ questionnaireParams.put(MANDATORY, mandatory);
+
+ String mode = componentQuestionnaire.getHighAvailabilityAndLoadBalancing()
+ .getHighAvailabilityMode();
+
+ questionnaireParams.put(HIGH_AVAIL_MODE, mode);
+ }
+
+ final Integer maxVms =
+ componentQuestionnaire.getCompute() != null ? (componentQuestionnaire.getCompute()
+ .getNumOfVMs() != null ? componentQuestionnaire.getCompute().getNumOfVMs()
+ .getMaximum(): null) : null;
+
+ final Integer minVms =
+ componentQuestionnaire.getCompute() != null ? (componentQuestionnaire.getCompute()
+ .getNumOfVMs() != null ? componentQuestionnaire.getCompute().getNumOfVMs()
+ .getMinimum(): null) : null;
+
+ questionnaireParams.put(MIN_INSTANCES,minVms != null && minVms == 0 ? null : minVms);
+ questionnaireParams.put(MAX_INSTANCES,maxVms != null && maxVms == 0 ? null : maxVms);
+
+ if (! questionnaireParams.isEmpty())
+ componentProperties.put(JsonUtil.json2Object(component.getCompositionData(),
+ ComponentData.class).getDisplayName(), questionnaireParams);
+ }
+
+ setSourceToTargetComponent(sourceToTarget);
+
+ return componentProperties;
+ }
+
+ public Map<String,List<String>> populateDependencies(String vspId, Version version, Map<String,
+ String> componentNameData) {
+ Collection<ComponentDependencyModelEntity> componentDependencies =
+ componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, version, null));
+
+ Map<String,List<String>> sourceToTargetComponent = new HashMap<String, List<String>>();
+ List<String> targetComponents = null;
+ for (ComponentDependencyModelEntity dependency : componentDependencies) {
+ String sourceComponentName = componentNameData.get(dependency.getSourceComponentId());
+ String targetComponentName = componentNameData.get(dependency.getTargetComponentId());
+ if (!sourceToTargetComponent.containsKey(sourceComponentName)) {
+ targetComponents = new ArrayList<String>();
+ } else {
+ targetComponents = sourceToTargetComponent.get(sourceComponentName);
+ }
+ targetComponents.add(targetComponentName);
+ sourceToTargetComponent.put(sourceComponentName, targetComponents);
+ }
+
+ return sourceToTargetComponent;
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ToscaEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ToscaEnricher.java
index 2c0f03480f..854d84ad84 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ToscaEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ToscaEnricher.java
@@ -20,11 +20,11 @@
package org.openecomp.sdc.enrichment.impl.tosca;
+import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.enrichment.inter.Enricher;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
-import org.openecomp.sdc.tosca.datatypes.model.NodeType;
-import org.openecomp.sdc.tosca.services.ToscaUtil;
import java.util.HashMap;
import java.util.List;
@@ -32,42 +32,28 @@ import java.util.Map;
public class ToscaEnricher extends Enricher {
- Map<String, List<NodeType>> componentTypNodeTypeMap;
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
@Override
public Map<String, List<ErrorMessage>> enrich() {
Map<String, List<ErrorMessage>> errors = new HashMap<>();
- Map<String, List<ErrorMessage>> enrichResponse;
- enrichResponse = enrichCilometer();
- errors.putAll(enrichResponse);
- enrichResponse = enrichSnmp();
- errors.putAll(enrichResponse);
-
+ errors.putAll(enrichAbstractSubstitute());
return errors;
}
- private Map<String, List<ErrorMessage>> enrichCilometer() {
- Map<String, List<ErrorMessage>> enrichResponse;
-
- ToscaServiceModel toscaModel = (ToscaServiceModel) model;
-
- componentTypNodeTypeMap =
- ToscaUtil.normalizeComponentNameNodeType(toscaModel, input.getEntityInfo().keySet());
-
- enrichResponse = CeilometerEnricher.enrich(toscaModel, componentTypNodeTypeMap, this.input);
+ private Map<String, List<ErrorMessage>> enrichAbstractSubstitute() {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
- return enrichResponse;
- }
+ Map<String, List<ErrorMessage>> enrichErrors;
+ ToscaServiceModel toscaModel = (ToscaServiceModel) model;
+ AbstractSubstituteToscaEnricher abstractSubstituteToscaEnricher =
+ new AbstractSubstituteToscaEnricher();
+ enrichErrors = abstractSubstituteToscaEnricher.enrich(toscaModel, data.getKey(),
+ data.getVersion());
- private Map<String, List<ErrorMessage>> enrichSnmp() {
- Map<String, List<ErrorMessage>> enrichResponse;
-
- enrichResponse = SnmpEnricher.enrich(componentTypNodeTypeMap, this.input);
-
- return enrichResponse;
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return enrichErrors;
}
-
-
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java
new file mode 100644
index 0000000000..e803d14b35
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.enrichment.impl.util;
+
+public class EnrichmentConstants {
+
+ public static final String VFC_NAMING_CODE = "nfc_naming_code";
+ public static final String MANDATORY = "mandatory";
+ public static final String HIGH_AVAIL_MODE = "high_availablity";
+ public static final String MIN_INSTANCES = "min_instances";
+ public static final String MAX_INSTANCES = "max_instances";
+ public static final String VM_TYPE_TAG = "vm_type_tag";
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/Enricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/Enricher.java
index 1d6867d1f3..ed606f8746 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/Enricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/Enricher.java
@@ -20,6 +20,7 @@
package org.openecomp.sdc.enrichment.inter;
+
import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.datatypes.model.AsdcModel;
import org.openecomp.sdc.enrichment.EnrichmentInfo;
@@ -30,16 +31,16 @@ import java.util.Map;
public abstract class Enricher {
- protected EnrichmentInfo input;
- protected AsdcModel model;
+ protected EnrichmentInfo data;
+ protected AsdcModel model;
- public void setInput(EnrichmentInfo input) {
- this.input = input;
- }
+ public void setData(EnrichmentInfo data) {
+ this.data = data;
+ }
- public void setModel(AsdcModel model) {
- this.model = model;
- }
+ public void setModel(AsdcModel model) {
+ this.model = model;
+ }
- public abstract Map<String, List<ErrorMessage>> enrich();
+ public abstract Map<String, List<ErrorMessage>> enrich();
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/EnricherHandler.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/EnricherHandler.java
index 717bbc8313..f0ffa0b1ad 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/EnricherHandler.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/EnricherHandler.java
@@ -20,22 +20,10 @@
package org.openecomp.sdc.enrichment.inter;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.datatypes.model.AsdcModel;
-
import java.util.List;
-import java.util.Map;
public interface EnricherHandler {
-
- List<Enricher> getEnrichers();
-
- Map<String, List<ErrorMessage>> enrich();
-
- void addAdditionalInput(String key, Object input);
-
- void setModel(AsdcModel model);
-
+ List<Enricher> getEnrichers();
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/SnmpEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/ExternalArtifactEnricherInterface.java
index 42cbcdd50b..49b424ef05 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/SnmpEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/inter/ExternalArtifactEnricherInterface.java
@@ -18,21 +18,19 @@
* ============LICENSE_END=========================================================
*/
-package org.openecomp.sdc.enrichment.impl.tosca;
+package org.openecomp.sdc.enrichment.inter;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.enrichment.EnrichmentInfo;
-import org.openecomp.sdc.tosca.datatypes.model.NodeType;
-import java.util.HashMap;
+import java.io.IOException;
import java.util.List;
import java.util.Map;
-public class SnmpEnricher {
- public static Map<String, List<ErrorMessage>> enrich(Map<String, List<NodeType>> modelNodeType,
- EnrichmentInfo input) {
- return new HashMap<>();
-
- }
+/**
+ * Created by Talio on 11/24/2016.
+ */
+public interface ExternalArtifactEnricherInterface {
+ public Map<String, List<ErrorMessage>> enrich(EnrichmentInfo enrichmentInfo) throws IOException;
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/resources/ExternalArtifactConfiguration.json b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/resources/ExternalArtifactConfiguration.json
new file mode 100644
index 0000000000..318d60b969
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/resources/ExternalArtifactConfiguration.json
@@ -0,0 +1,5 @@
+{
+ "InformationArtifactEnricher": "org.openecomp.sdc.enrichment.impl.external.artifact.VspInformationArtifactEnricher",
+ "MonitoringMibEnricher": "org.openecomp.sdc.enrichment.impl.external.artifact.MonitoringMibEnricher",
+ "ProcessArtifactEnricher": "org.openecomp.sdc.enrichment.impl.external.artifact.ProcessArtifactEnricher"
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java
new file mode 100644
index 0000000000..7a16b6945d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java
@@ -0,0 +1,167 @@
+/*-
+ * ============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.enrichment.impl.external.artifact;
+
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.core.enrichment.types.ArtifactCategory;
+import org.openecomp.core.enrichment.types.ArtifactType;
+import org.openecomp.core.model.dao.EnrichedServiceModelDao;
+import org.openecomp.core.model.types.ServiceArtifact;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.enrichment.EnrichmentInfo;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Optional;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.times;
+
+
+/**
+ * @author shiria
+ * @since November 06, 2016.
+ */
+
+public class MonitoringMibEnricherTest {
+ @Mock
+ private MibDao mibDaoMock;
+ @Mock
+ private EnrichedServiceModelDao enrichedServiceModelDaoMock;
+ @Mock
+ private VendorSoftwareProductDao vendorSoftwareProductDaoMock;
+ @Mock
+ private ComponentDao componentDaoMock;
+
+ @InjectMocks
+ private MonitoringMibEnricher monitoringMibEnricher;
+
+
+ @BeforeMethod(alwaysRun = true)
+ public void injectDoubles() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testEnrichComponent() throws Exception {
+ String vspId = "123";
+ String componentId = "1111111111";
+ Version version = new Version();
+ version.setMajor(1);
+ version.setMinor(0);
+
+ ComponentEntity componentEntity = getComponentEntity(vspId, version, componentId);
+ setMockToEnrichComponent(vspId, componentId, version);
+ monitoringMibEnricher.enrichComponent(componentEntity, vspId, version);
+
+ String componentName = componentEntity.getComponentCompositionData().getName();
+
+ ArgumentCaptor<ServiceArtifact> expectedServiceArtifact =
+ ArgumentCaptor.forClass(ServiceArtifact.class);
+ Mockito.verify(enrichedServiceModelDaoMock, atLeastOnce())
+ .storeExternalArtifact(expectedServiceArtifact.capture());
+ Assert
+ .assertEquals(expectedServiceArtifact.getValue().getName().startsWith(componentName), true);
+ Assert.assertEquals(expectedServiceArtifact.getValue().getName(),
+ componentName + File.separator + ArtifactCategory.DEPLOYMENT.getDisplayName() +
+ File.separator + ArtifactType.SNMP_POLL + File.separator + "mib1.yml");
+
+ }
+
+ @Test
+ public void testEnrich() throws Exception {
+ EnrichmentInfo enrichmentInfo = new EnrichmentInfo();
+ Version version = new Version();
+ version.setMajor(1);
+ version.setMinor(0);
+ String vspId = "123";
+ enrichmentInfo.setKey(vspId);
+ enrichmentInfo.setVersion(version);
+ String componentId1 = "1111111111";
+ String componentId2 = "2222222222";
+
+
+ Collection<ComponentEntity> returnedComponents = new ArrayList<>();
+ returnedComponents.add(getComponentEntity(vspId, version, componentId1));
+ returnedComponents.add(getComponentEntity(vspId, version, componentId2));
+
+ Mockito.when(componentDaoMock.list(anyObject()))
+ .thenReturn(returnedComponents);
+ setMockToEnrichComponent(vspId, componentId1, version);
+
+ monitoringMibEnricher.enrich(enrichmentInfo);
+ Mockito.verify(enrichedServiceModelDaoMock, times(8)).storeExternalArtifact(anyObject());
+
+ }
+
+ private void setMockToEnrichComponent(String vspId, String componentId, Version version) {
+ MibEntity returnedArtifact = new MibEntity();
+ returnedArtifact.setVspId(vspId);
+ returnedArtifact.setVersion(version);
+ returnedArtifact.setComponentId(componentId);
+ returnedArtifact.setType(ArtifactType.SNMP_POLL);
+ returnedArtifact.setArtifactName("mib.zip");
+ returnedArtifact.setArtifact(getMibByteBuffer("/mock/enrichMib/MIB.zip"));
+
+ Mockito.when(mibDaoMock.getByType(anyObject()))
+ .thenReturn(Optional.of(returnedArtifact));
+ Mockito.doNothing().when(enrichedServiceModelDaoMock).storeExternalArtifact(anyObject());
+ }
+
+ private ComponentEntity getComponentEntity(String vspId, Version version, String componentId) {
+ ComponentEntity componentEntity = new ComponentEntity();
+ componentEntity.setId(componentId);
+ componentEntity.setVspId(vspId);
+ componentEntity.setVersion(version);
+
+ String componentName = vspId + "enrichMib_server";
+ String compositionData = "{\n" +
+ " \"name\": \"org.openecomp.resource.vfc.nodes.heat." + componentName + "\",\n" +
+ " \"displayName\": \"" + componentName + "\"\n" +
+ "}";
+ componentEntity.setCompositionData(compositionData);
+ return componentEntity;
+ }
+
+ private ByteBuffer getMibByteBuffer(String fileName) {
+ InputStream mibFile = FileUtils.getFileInputStream(this.getClass().getResource(fileName));
+ byte[] mibBytes = FileUtils.toByteArray(mibFile);
+ return ByteBuffer.wrap(mibBytes);
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java
new file mode 100644
index 0000000000..cfb241483a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java
@@ -0,0 +1,128 @@
+package org.openecomp.sdc.enrichment.impl.external.artifact;
+
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.core.enrichment.types.ArtifactCategory;
+import org.openecomp.core.model.dao.EnrichedServiceModelDao;
+import org.openecomp.core.model.types.ServiceArtifact;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.enrichment.EnrichmentInfo;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessType;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.when;
+
+public class ProcessArtifactEnricherTest {
+ @Mock
+ ProcessDao processDaoMock;
+ @Mock
+ EnrichedServiceModelDao enrichedServiceModelDaoMock;
+ @Mock
+ VendorSoftwareProductDao vendorSoftwareProductDaoMock;
+
+ @InjectMocks
+ ProcessArtifactEnricher processArtifactEnricher;
+
+
+ @BeforeMethod(alwaysRun = true)
+ public void injectDoubles() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testEnrichComponent() throws Exception {
+ String vspId = "123";
+ String componentId = "1111111111";
+ Version version = new Version();
+ version.setMajor(1);
+ version.setMinor(0);
+
+ ComponentEntity componentEntity = getComponentEntity(vspId, version, componentId);
+ setMockToEnrichComponent(vspId, componentId, version);
+
+ ProcessEntity entity = new ProcessEntity(vspId, version, componentId, null);
+ ProcessEntity processEntity = new ProcessEntity();
+ processEntity.setType(ProcessType.Lifecycle_Operations);
+ processEntity.setVspId(vspId);
+ processEntity.setVersion(version);
+ processEntity.setComponentId(componentId);
+
+ Collection<ComponentEntity> componentList = new ArrayList<ComponentEntity>();
+ componentList.add(componentEntity);
+ when(vendorSoftwareProductDaoMock.listComponents(vspId, version)).thenReturn(componentList);
+
+ Collection<ProcessEntity> list = new ArrayList<ProcessEntity>();
+ list.add(processEntity);
+ when(processDaoMock.list(entity)).thenReturn(list);
+
+ EnrichmentInfo info = new EnrichmentInfo();
+ info.setVersion(version);
+ info.setKey(vspId);
+ processArtifactEnricher.enrich(info);
+
+ String componentName = componentEntity.getComponentCompositionData().getName();
+
+ ArgumentCaptor<ServiceArtifact> expectedServiceArtifact =
+ ArgumentCaptor.forClass(ServiceArtifact.class);
+ Mockito.verify(enrichedServiceModelDaoMock, atLeastOnce())
+ .storeExternalArtifact(expectedServiceArtifact.capture());
+ Assert
+ .assertEquals(expectedServiceArtifact.getValue().getName().startsWith(componentName), true);
+ Assert.assertEquals(expectedServiceArtifact.getValue().getName(),
+ componentName + File.separator + ArtifactCategory.DEPLOYMENT.getDisplayName() +
+ File.separator + "Lifecycle Operations" + File.separator + "artifact_1kb.txt");
+
+ }
+
+ private void setMockToEnrichComponent(String vspId, String componentId, Version version) {
+ ProcessEntity returnedArtifact = new ProcessEntity();
+ returnedArtifact.setVspId(vspId);
+ returnedArtifact.setVersion(version);
+ returnedArtifact.setComponentId(componentId);
+ returnedArtifact.setArtifactName("artifact_1kb.txt");
+ returnedArtifact.setArtifact(getMibByteBuffer("/mock/enrichProcess/artifact_1kb.txt"));
+
+ Mockito.when(processDaoMock.get(anyObject()))
+ .thenReturn(returnedArtifact);
+ Mockito.doNothing().when(enrichedServiceModelDaoMock).storeExternalArtifact(anyObject());
+ }
+
+ private ComponentEntity getComponentEntity(String vspId, Version version, String componentId) {
+ ComponentEntity componentEntity = new ComponentEntity();
+ componentEntity.setId(componentId);
+ componentEntity.setVspId(vspId);
+ componentEntity.setVersion(version);
+
+ String componentName = vspId + "enrichMib_server";
+ String compositionData = "{\n" +
+ " \"name\": \"org.openecomp.resource.vfc.nodes.heat." + componentName + "\",\n" +
+ " \"displayName\": \"" + componentName + "\"\n" +
+ "}";
+ componentEntity.setCompositionData(compositionData);
+ return componentEntity;
+ }
+
+ private ByteBuffer getMibByteBuffer(String fileName) {
+ InputStream mibFile = FileUtils.getFileInputStream(this.getClass().getResource(fileName));
+ byte[] mibBytes = FileUtils.toByteArray(mibFile);
+ return ByteBuffer.wrap(mibBytes);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java
new file mode 100644
index 0000000000..ae1b613f75
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java
@@ -0,0 +1,162 @@
+package org.openecomp.sdc.enrichment.impl.tosca;
+
+
+import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest {
+ @Mock
+ ComponentQuestionnaireData utilMock;
+
+ @InjectMocks
+ AbstractSubstituteToscaEnricher toscaEnricher;
+
+ String vspId = null;
+ Version version = new Version();
+
+ @BeforeMethod(alwaysRun = true)
+ public void injectDoubles() {
+ MockitoAnnotations.initMocks(this);
+ vspId = "123";
+ version.setMajor(1);
+ version.setMinor(0);
+ }
+
+ @Test
+ public void testEnrich() throws Exception {
+ outputFilesPath = "/mock/enrichHA/out/";
+
+ ToscaServiceModel toscaServiceModel =
+ loadToscaServiceModel("/mock/enrichHA/in/", "/mock/toscaGlobalServiceTemplates/",
+ "MainServiceTemplate.yaml");
+
+ Map<String, Map<String, Object>> componentTypetoParams = new HashMap();
+ Map<String, Object> innerProps = new HashedMap();
+ innerProps.put(MANDATORY, "YES");
+ innerProps.put(HIGH_AVAIL_MODE, "geo-activestandby");
+ innerProps.put(VFC_NAMING_CODE, "Code1");
+ innerProps.put(MIN_INSTANCES, 1);
+ innerProps.put(MAX_INSTANCES, 2);
+
+ componentTypetoParams.put("pd_server", innerProps);
+
+ when(utilMock.getPropertiesfromCompQuestionnaire(vspId,version)).thenReturn
+ (componentTypetoParams);
+
+ Map<String,String> map = new HashMap<String,String>();
+ Map<String, List<String>> sourceToTargetDependencies = new HashMap<String, List<String>>();
+ List<String> targets = new ArrayList<String>();
+ targets.add("fe"); targets.add("be");
+ sourceToTargetDependencies.put("pd_server", targets);
+
+ when(utilMock.getSourceToTargetComponent()).thenReturn(map);
+
+ when(utilMock.populateDependencies(vspId,version,map)).thenReturn(sourceToTargetDependencies);
+
+ Map<String, List<ErrorMessage>> errors =
+ toscaEnricher.enrich(toscaServiceModel, vspId, version );
+
+ compareActualAndExpectedModel(toscaServiceModel);
+
+ Assert.assertEquals(errors.size(), 0);
+ }
+
+ @Test
+ public void testEnrichWithoutServiceTemplateFilter() throws Exception {
+ outputFilesPath = "/mock/enrichHANoServiceTemplateFilter/out";
+
+ ToscaServiceModel toscaServiceModel =
+ loadToscaServiceModel("/mock/enrichHANoServiceTemplateFilter/in",
+ "/mock/toscaGlobalServiceTemplates/",
+ "MainServiceTemplate.yaml");
+
+ Map<String, Map<String, Object>> componentTypetoParams = new HashMap();
+ Map<String, Object> innerProps = new HashedMap();
+ innerProps.put(MANDATORY, "NO");
+ innerProps.put(HIGH_AVAIL_MODE, "");
+ innerProps.put(VFC_NAMING_CODE, "pd_server_code1");
+ innerProps.put(MIN_INSTANCES, null);
+ innerProps.put(MAX_INSTANCES, null);
+
+ componentTypetoParams.put("pd_server", innerProps);
+
+ when(utilMock.getPropertiesfromCompQuestionnaire(vspId,version)).thenReturn
+ (componentTypetoParams);
+
+ Map<String,String> map = new HashMap<String,String>();
+ Map<String, List<String>> sourceToTargetDependencies = new HashMap<String, List<String>>();
+
+ when(utilMock.getSourceToTargetComponent()).thenReturn(map);
+ when(utilMock.populateDependencies(vspId,version,map)).thenReturn(sourceToTargetDependencies);
+
+ Map<String, List<ErrorMessage>> errors =
+ toscaEnricher.enrich(toscaServiceModel, vspId, version );
+
+ compareActualAndExpectedModel(toscaServiceModel);
+
+ Assert.assertEquals(errors.size(), 0);
+ }
+
+ @Test
+ public void testEnrichNotMandatory() throws Exception {
+ outputFilesPath = "/mock/enrichHANotMandatory/out";
+
+ ToscaServiceModel toscaServiceModel =
+ loadToscaServiceModel("/mock/enrichHANotMandatory/in",
+ "/mock/toscaGlobalServiceTemplates/",
+ "MainServiceTemplate.yaml");
+
+ Map<String, Map<String, Object>> componentTypetoParams = new HashMap();
+ Map<String, Object> innerProps = new HashedMap();
+
+ innerProps.put(MANDATORY, "");
+ innerProps.put(MIN_INSTANCES, 1);
+ innerProps.put(MAX_INSTANCES, 5);
+
+ componentTypetoParams.put("pd_server_vm", innerProps);
+
+ when(utilMock.getPropertiesfromCompQuestionnaire(vspId,version)).thenReturn
+ (componentTypetoParams);
+
+ Map<String,String> map = new HashMap<String,String>();
+ Map<String, List<String>> sourceToTargetDependencies = new HashMap<String, List<String>>();
+ List<String> targets = new ArrayList<String>();
+ targets.add("fe");
+ sourceToTargetDependencies.put("pd_server_vm", targets);
+
+ when(utilMock.getSourceToTargetComponent()).thenReturn(map);
+
+ when(utilMock.populateDependencies(vspId,version,map)).thenReturn(sourceToTargetDependencies);
+
+ when(utilMock.getSourceToTargetComponent()).thenReturn(map);
+ when(utilMock.populateDependencies(vspId,version,map)).thenReturn(sourceToTargetDependencies);
+
+ Map<String, List<ErrorMessage>> errors =
+ toscaEnricher.enrich(toscaServiceModel, vspId, version );
+
+ compareActualAndExpectedModel(toscaServiceModel);
+
+ Assert.assertEquals(errors.size(), 0);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java
new file mode 100644
index 0000000000..366bd82eab
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java
@@ -0,0 +1,206 @@
+/*-
+ * ============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.enrichment.impl.tosca;
+
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
+import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+
+import java.io.*;
+import java.net.URL;
+import java.nio.file.NotDirectoryException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import static org.junit.Assert.assertEquals;
+
+public class BaseToscaEnrichmentTest {
+
+ protected String outputFilesPath;
+
+ public static ToscaServiceModel loadToscaServiceModel(String serviceTemplatesPath,
+ String globalServiceTemplatesPath,
+ String entryDefinitionServiceTemplate)
+ throws IOException {
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
+ if (entryDefinitionServiceTemplate == null) {
+ entryDefinitionServiceTemplate = "MainServiceTemplate.yaml";
+ }
+
+ loadServiceTemplates(serviceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates);
+ if (globalServiceTemplatesPath != null) {
+ loadServiceTemplates(globalServiceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates);
+ }
+
+ return new ToscaServiceModel(null, serviceTemplates, entryDefinitionServiceTemplate);
+ }
+
+ private static void loadServiceTemplates(String serviceTemplatesPath,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil,
+ Map<String, ServiceTemplate> serviceTemplates)
+ throws IOException {
+ URL urlFile = BaseToscaEnrichmentTest.class.getResource(serviceTemplatesPath);
+ if (urlFile != null) {
+ File pathFile = new File(urlFile.getFile());
+ Collection<File> files = org.apache.commons.io.FileUtils.listFiles(pathFile, null, true);
+ if (files != null) {
+ addServiceTemplateFiles(serviceTemplates, files, toscaExtensionYamlUtil);
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ }
+
+ private static void addServiceTemplateFiles(Map<String, ServiceTemplate> serviceTemplates,
+ Collection<File> files,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil)
+ throws IOException {
+ for (File file : files) {
+ try (InputStream yamlFile = new FileInputStream(file)) {
+ ServiceTemplate serviceTemplateFromYaml =
+ toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ serviceTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplateFromYaml), serviceTemplateFromYaml);
+ try {
+ yamlFile.close();
+ } catch (IOException ignore) {
+ }
+ } catch (FileNotFoundException exception) {
+ throw exception;
+ } catch (IOException exception) {
+ throw exception;
+ }
+ }
+ }
+
+
+ /*public static ToscaServiceModel loadToscaServiceModel(String serviceTemplatesPath,
+ String globalServiceTemplatesPath,
+ String entryDefinitionServiceTemplate)
+ throws IOException {
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
+ if (entryDefinitionServiceTemplate == null) {
+ entryDefinitionServiceTemplate = "MainServiceTemplate.yaml";
+ }
+
+ loadServiceTemplates(serviceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates);
+ if (globalServiceTemplatesPath != null) {
+ loadServiceTemplates(globalServiceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates);
+ }
+
+ return new ToscaServiceModel(null, serviceTemplates, entryDefinitionServiceTemplate);
+ }
+
+ private static void loadServiceTemplates(String serviceTemplatesPath,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil,
+ Map<String, ServiceTemplate> serviceTemplates)
+ throws IOException {
+ URL urlFile = BaseToscaEnrichmentTest.class.getResource(serviceTemplatesPath);
+ if (urlFile != null) {
+ File pathFile = new File(urlFile.getFile());
+ File[] files = pathFile.listFiles();
+ if (files != null) {
+ addServiceTemplateFiles(serviceTemplates, files, toscaExtensionYamlUtil);
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ }
+
+ private static void addServiceTemplateFiles(Map<String, ServiceTemplate> serviceTemplates,
+ File[] files,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil)
+ throws IOException {
+ for (File file : files) {
+ try (InputStream yamlFile = new FileInputStream(file)) {
+ ServiceTemplate serviceTemplateFromYaml =
+ toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ serviceTemplates.put(file.getName(), serviceTemplateFromYaml);
+ try {
+ yamlFile.close();
+ } catch (IOException ignore) {
+ }
+ } catch (FileNotFoundException e) {
+ throw e;
+ } catch (IOException e) {
+ throw e;
+ }
+ }
+ }*/
+
+ void compareActualAndExpectedModel(ToscaServiceModel toscaServiceModel) throws IOException {
+
+ ToscaFileOutputService toscaFileOutputService = new ToscaFileOutputServiceCsarImpl();
+ byte[] toscaActualFile = toscaFileOutputService.createOutputFile(toscaServiceModel, null);
+
+ URL url = BaseToscaEnrichmentTest.class.getResource(outputFilesPath);
+ Set<String> expectedResultFileNameSet = new HashSet<>();
+ Map<String, byte[]> expectedResultMap = new HashMap<>();
+ String path = url.getPath();
+ File pathFile = new File(path);
+ File[] files = pathFile.listFiles();
+ org.junit.Assert.assertNotNull("model is empty", files);
+ for (File expectedFile : files) {
+ expectedResultFileNameSet.add(expectedFile.getName());
+ try (FileInputStream input = new FileInputStream(expectedFile)) {
+ expectedResultMap.put(expectedFile.getName(), FileUtils.toByteArray(input));
+ }
+ }
+
+ try (InputStream fis = new ByteArrayInputStream(toscaActualFile);
+ ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis))) {
+ ZipEntry entry;
+ String name;
+ String expected;
+ String actual;
+
+ while ((entry = zis.getNextEntry()) != null) {
+ name = entry.getName()
+ .substring(entry.getName().lastIndexOf(File.separator) + 1, entry.getName().length());
+ if (expectedResultFileNameSet.contains(name)) {
+ expected = new String(expectedResultMap.get(name)).trim().replace("\r", "");
+ actual = new String(FileUtils.toByteArray(zis)).trim().replace("\r", "");
+ assertEquals("difference in file: " + name, expected, actual);
+
+ expectedResultFileNameSet.remove(name);
+ }
+ }
+ if (expectedResultFileNameSet.isEmpty()) {
+ expectedResultFileNameSet.forEach(System.out::println);
+ }
+ }
+ assertEquals(0, expectedResultFileNameSet.size());
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java
new file mode 100644
index 0000000000..d281604227
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java
@@ -0,0 +1,115 @@
+package org.openecomp.sdc.enrichment.impl.tosca;
+
+import static org.mockito.Mockito.doReturn;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.versioning.VersioningManager;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ComponentQuestionnaireDataTest {
+ private static String VSP_ID = "vspId";
+ public static final Version VERSION01 = new Version(0, 1);
+ private static final Version VERSION10 = new Version(1, 0);
+
+ @Mock
+ private ComponentDao componentDaoMock;
+
+ @Mock
+ private ComponentDependencyModelDao componentDependencyDaoMock;
+
+ @InjectMocks
+ private static ComponentQuestionnaireData componentQuestionnaireData;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testGetData() {
+ ComponentEntity componentEntity = new ComponentEntity(VSP_ID, VERSION01,"ID1" );
+ componentEntity.setCompositionData("{\"name\": \"org.openecomp.resource.vfc.nodes.heat.be\"," +
+ "\"displayName\": \"be\", \"vfcCode\": \"be_1\"}");
+ componentEntity.setQuestionnaireData
+ ("{\"highAvailabilityAndLoadBalancing\":{\"isComponentMandatory\" : \"NO\"," +
+ "\"highAvailabilityMode\":\"geo-activeactive\"},\"compute\":{\"numOfVMs\" " +
+ ":{\"maximum\" : 5, \"minimum\" : 0}}}");
+
+ List<ComponentEntity> entitites = new ArrayList<ComponentEntity>();
+ entitites.add(componentEntity);
+
+ doReturn(entitites).when(componentDaoMock).listCompositionAndQuestionnaire(VSP_ID, VERSION01);
+
+ final Map<String, Map<String, Object>> propertiesfromCompQuestionnaire =
+ componentQuestionnaireData.getPropertiesfromCompQuestionnaire(VSP_ID, VERSION01);
+
+ final Map<String, Object> be = propertiesfromCompQuestionnaire.get("be");
+ Assert.assertEquals(be.get(VFC_NAMING_CODE) , "be_1");
+ Assert.assertEquals(be.get(MANDATORY) ,"NO");
+ Assert.assertEquals(be.get(HIGH_AVAIL_MODE) ,"geo-activeactive");
+ Assert.assertEquals(be.get(MIN_INSTANCES) ,null);
+ Assert.assertEquals(be.get(MAX_INSTANCES) ,5);
+
+ final Map<String, String> sourceToTargetComponent =
+ componentQuestionnaireData.getSourceToTargetComponent();
+
+ Assert.assertEquals("be", sourceToTargetComponent.get("ID1"));
+ }
+
+
+ @Test
+ public void testPopulateDepnendency() {
+ ComponentDependencyModelEntity sourceComponent = new ComponentDependencyModelEntity(VSP_ID, VERSION01,"ID1" );
+ sourceComponent.setSourceComponentId("Comp1");
+ sourceComponent.setTargetComponentId("Comp2");
+ sourceComponent.setRelation("dependsOn");
+
+ ComponentDependencyModelEntity targetComponent = new ComponentDependencyModelEntity(VSP_ID,
+ VERSION01,"ID2" );
+ targetComponent.setSourceComponentId("Comp1");
+ targetComponent.setTargetComponentId("Comp3");
+ targetComponent.setRelation("dependsOn");
+
+ List<ComponentDependencyModelEntity> entitites = new ArrayList<ComponentDependencyModelEntity>();
+ entitites.add(sourceComponent);
+ entitites.add(targetComponent);
+
+ doReturn(entitites).when(componentDependencyDaoMock).list(new ComponentDependencyModelEntity
+ (VSP_ID, VERSION01, null));
+
+ final Map<String, String> sourceToTargetComponent = new HashMap<String, String>();
+ sourceToTargetComponent.put("Comp1", "fe");
+ sourceToTargetComponent.put("Comp2", "be");
+ sourceToTargetComponent.put("Comp3", "smp");
+ final Map<String, List<String>> dependencies =
+ componentQuestionnaireData.populateDependencies(VSP_ID, VERSION01, sourceToTargetComponent);
+
+ List<String> expectedTargets = new ArrayList<String>();
+ expectedTargets.add("be"); expectedTargets.add("smp");
+
+ Assert.assertEquals(dependencies.get("fe"), expectedTargets);
+
+
+
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..3cb1c1740c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,1134 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: ComputeGlobalTypes
+ template_version: 1.0.0
+description: Compute TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.Compute:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ disk.ephemeral.size:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: GB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.ephemeral.size
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Size of ephemeral disk
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: instance
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: instance
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Existence of instance
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ memory:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: MB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: memory
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of RAM allocated to the instance
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.iops:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: count/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.iops
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk iops
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.read.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.read.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of read requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ cpu.delta:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ns
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: cpu.delta
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: CPU time used since previous datapoint
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Delta
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.capacity:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.capacity
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk that the instance can see
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.write.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of writes
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.read.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.read.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of reads
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.latency:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ms
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.latency
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk latency
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.usage
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The physical size in bytes of the image container on the host
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ cpu_util:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: '%'
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: cpu_util
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average CPU utilization
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.allocation:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.allocation
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk per device occupied by the instance on the host machine
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.write.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.requests.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.write.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.bytes.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of writes
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.latency:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ms
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.latency
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk latency per device
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ cpu:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ns
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: cpu
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: CPU time used
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.read.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.read.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of read requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.root.size:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: GB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.root.size
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Size of root disk
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.write.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.write.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ vcpus:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ms
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: vcpus
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of virtual CPUs allocated to the instance
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.iops:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: count/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.iops
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk iops per device
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.usage
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The physical size in bytes of the image container on the host per device
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.read.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.read.requests.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of read requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.write.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.write.requests.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ instance:type:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: instance
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: instance:type
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Existence of instance <type> (OpenStack types)
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.allocation:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.allocation
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk occupied by the instance on the host machine
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.read.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.read.bytes.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of reads
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.read.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.read.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of reads
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ memory.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: MB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: memory.usage
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of RAM used by the instance from the amount of its allocated memory
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.capacity:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.capacity
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk per device that the instance can see
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ memory.resident:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: MB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: memory.resident
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of RAM used by the instance on the physical machine
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.write.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/PortGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/PortGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..a3a466ba26
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichCeilometerOutput/PortGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,46 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: PortGlobalTypes
+ template_version: 1.0.0
+description: Port TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.cp.nodes.network.Port:
+ derived_from: tosca.nodes.network.Port
+ capabilities:
+ network.incoming.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: network.incoming.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of incoming bytes
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: network
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichComputeCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichComputeCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..3cb1c1740c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichComputeCeilometerOutput/ComputeGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,1134 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: ComputeGlobalTypes
+ template_version: 1.0.0
+description: Compute TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.Compute:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ disk.ephemeral.size:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: GB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.ephemeral.size
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Size of ephemeral disk
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: instance
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: instance
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Existence of instance
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ memory:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: MB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: memory
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of RAM allocated to the instance
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.iops:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: count/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.iops
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk iops
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.read.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.read.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of read requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ cpu.delta:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ns
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: cpu.delta
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: CPU time used since previous datapoint
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Delta
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.capacity:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.capacity
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk that the instance can see
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.write.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of writes
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.read.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.read.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of reads
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.latency:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ms
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.latency
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk latency
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.usage
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The physical size in bytes of the image container on the host
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ cpu_util:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: '%'
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: cpu_util
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average CPU utilization
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.allocation:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.allocation
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk per device occupied by the instance on the host machine
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.write.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.requests.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.write.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.bytes.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of writes
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.latency:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ms
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.latency
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk latency per device
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ cpu:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ns
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: cpu
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: CPU time used
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.read.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.read.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of read requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.root.size:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: GB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.root.size
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Size of root disk
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.write.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.write.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ vcpus:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: ms
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: vcpus
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of virtual CPUs allocated to the instance
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.iops:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: count/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.iops
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average disk iops per device
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.usage
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The physical size in bytes of the image container on the host per device
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.read.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.read.requests.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of read requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.device.write.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.write.requests.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ instance:type:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: instance
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: instance:type
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Existence of instance <type> (OpenStack types)
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.allocation:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.allocation
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk occupied by the instance on the host machine
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ disk.read.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B/s
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.read.bytes.rate
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Average rate of reads
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.read.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.read.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of reads
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ memory.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: MB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: memory.usage
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of RAM used by the instance from the amount of its allocated memory
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.device.capacity:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.device.capacity
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: The amount of disk per device that the instance can see
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: disk
+ status: SUPPORTED
+ memory.resident:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: MB
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: memory.resident
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Volume of RAM used by the instance on the physical machine
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Gauge
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED
+ disk.write.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: request
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: disk.write.requests
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of write requests
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: compute
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..feddcc3536
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/MainServiceTemplate.yaml
@@ -0,0 +1,479 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ repl_net_ips:
+ label: repl network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of repl network
+ default:
+ - 107.239.33.57
+ - 107.239.33.58
+ entry_schema:
+ type: string
+ sl_net_name:
+ label: silver lining network name
+ hidden: false
+ immutable: false
+ type: string
+ description: id of the sl network
+ default: exn_protected_net_0
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ entry_schema:
+ type: string
+ sm_server_names:
+ label: SM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the SM instance
+ default:
+ - ZRDM1MOGX01MSM001
+ - ZRDM1MOGX01MSM002
+ entry_schema:
+ type: string
+ dummy_net_netmask_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ dummy_net_netmask_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ ran_net_floating_ip:
+ label: mog ran net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog ran net virtual ip
+ default: 107.239.36.5
+ ran_net_ips:
+ label: RAN network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: RAN network ip
+ default:
+ - 107.239.36.3
+ - 107.239.36.4
+ entry_schema:
+ type: string
+ dummy_net_end_0:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.1.254
+ oam_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM image name
+ default: MOG_BASE_8.0
+ dummy_net_end_1:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.2.254
+ oam_net_name:
+ label: oam network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the oam network
+ default: oam_protected_net_0
+ oam_net_ips:
+ label: internet network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ip of the OAM network
+ default:
+ - 107.250.172.213
+ - 107.250.172.214
+ - 107.250.172.215
+ - 107.250.172.216
+ - 107.250.172.217
+ entry_schema:
+ type: string
+ ran_net_name:
+ label: RAN network name
+ hidden: false
+ immutable: false
+ type: string
+ description: RAN network name
+ default: gn_direct_net_0
+ cluster-manager-vol-1:
+ label: mog-cm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Cluster Manager volume 1
+ default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+ csb_net_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ oam_flavor_name:
+ label: OAM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of OAM instance
+ default: m3.xlarge
+ dummy_net_start_0:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.1.4
+ dummy_net_start_1:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.2.4
+ cm_flavor_name:
+ label: CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of CM instance
+ default: m3.xlarge
+ sm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: SM image name
+ default: MOG_BASE_8.0
+ ps_server_names:
+ label: PS server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PS instance
+ default:
+ - ZRDM1MOGX01MPS001
+ - ZRDM1MOGX01MPS002
+ - ZRDM1MOGX01MPS003
+ - ZRDM1MOGX01MPS004
+ entry_schema:
+ type: string
+ csb_net_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: mog_csb_net IP addresses
+ default:
+ - 172.26.0.10
+ - 172.26.0.11
+ - 172.26.0.12
+ - 172.26.0.13
+ - 172.26.0.14
+ - 172.26.0.15
+ - 172.26.0.16
+ - 172.26.0.17
+ - 172.26.0.18
+ - 172.26.0.19
+ - 172.26.0.20
+ entry_schema:
+ type: string
+ ps_flavor_name:
+ label: PS flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PS instance
+ default: m3.xlarge
+ rx_net_ips:
+ label: Rx network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: Rx network ips
+ default:
+ - 107.239.34.3
+ - 107.239.34.4
+ entry_schema:
+ type: string
+ dummy_net_name_1:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_1
+ dummy_net_cidr_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.2.0/24
+ dummy_net_name_0:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_0
+ dummy_net_cidr_0:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.1.0/24
+ oam-vol-2:
+ label: mog-oam-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 2
+ default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+ sl_net_floating_ip:
+ label: mog sl net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog sl net virtual ip
+ default: 107.239.45.6
+ session-manager-vol-1:
+ label: mog-sm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 1
+ default: 49201898-333d-4c88-b58d-cf573b091633
+ rx_net_floating_ip:
+ label: mog rx net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog rx net virtual ip
+ default: 107.239.34.5
+ session-manager-vol-2:
+ label: mog-sm-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 2
+ default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+ oam-vol-1:
+ label: mog-oam-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 1
+ default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+ csb_net_start:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 172.26.0.1
+ cm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: CM image name
+ default: MOG_BASE_8.0
+ sm_flavor_name:
+ label: SM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of SM instance
+ default: m2.xlarge4
+ ps_image_name:
+ label: PS image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PS image name
+ default: MOG_BASE_8.0
+ oam_server_names:
+ label: OAM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the OAM instance
+ default:
+ - ZRDM1MOGX01OAM001
+ - ZRDM1MOGX01OAM002
+ entry_schema:
+ type: string
+ csb_net_cidr:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 172.26.0.0/24
+ cm_server_names:
+ label: CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the CM instance
+ default:
+ - ZRDM1MOGX01MCM001
+ entry_schema:
+ type: string
+ sl_net_ips:
+ label: silver lining network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of the sl network
+ default:
+ - 107.239.45.4
+ - 107.239.45.5
+ entry_schema:
+ type: string
+ rx_net_name:
+ label: Rx network name
+ hidden: false
+ immutable: false
+ type: string
+ description: Rx network name
+ default: cor_direct_net_1
+ repl_net_name:
+ label: Replication network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the replication network
+ default: cor_direct_net_0
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ default: mog_security_group
+ csb_net_end:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 172.26.0.254
+ csb_net_name:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: int_mog_csb_net
+ node_templates:
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd01_port_0_floating_ip_count:
+ - false
+ port_pd01_port_0_network:
+ - get_input: oam_net_name
+ port_pd01_port_0_network_role_tag:
+ - oam
+ port_pd01_port_0_ip_count:
+ - false
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd01_port_1_floating_ip_count:
+ - false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_1_ip_count:
+ - false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_1_mac_count:
+ - false
+ port_pd01_port_1_network_role_tag:
+ - oam
+ port_pd01_port_0_mac_count:
+ - false
+ port_pd01_port_1_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: pd_server
+ nfc_naming_code: pd_server
+ groups:
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4e6fc86a67
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/in/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,378 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd01_port_0_floating_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_0_network_role_tag:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_0_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_1_floating_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd01_port_1_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pd01_port_1_mac_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_1_network_role_tag:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_0_mac_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd01_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_count:
+ get_input:
+ - port_pd01_port_1_mac_count
+ - index_value
+ ip_count:
+ get_input:
+ - port_pd01_port_1_ip_count
+ - index_value
+ floating_ip_count:
+ get_input:
+ - port_pd01_port_1_floating_ip_count
+ - index_value
+ network_role_tag:
+ get_input:
+ - port_pd01_port_1_network_role_tag
+ - index_value
+ network:
+ get_input:
+ - port_pd01_port_1_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_01
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_pd01_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_count:
+ get_input:
+ - port_pd01_port_0_mac_count
+ - index_value
+ ip_count:
+ get_input:
+ - port_pd01_port_0_ip_count
+ - index_value
+ floating_ip_count:
+ get_input:
+ - port_pd01_port_0_floating_ip_count
+ - index_value
+ network_role_tag:
+ get_input:
+ - port_pd01_port_0_network_role_tag
+ - index_value
+ network:
+ get_input:
+ - port_pd01_port_0_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_01
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ binding_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - binding
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ binding_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - binding
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ network.incoming.packets_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.packets
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ network.incoming.packets.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.packets.rate
+ network.incoming.bytes.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.bytes.rate
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.incoming.packets.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.packets.rate
+ network.incoming.bytes.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.bytes.rate
+ attachment_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - attachment
+ network.outgoing.packets.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outgoing.packets.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ attachment_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - attachment
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ network.incoming.packets_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.packets
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ network.outgoing.bytes.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outgoing.bytes.rate
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ network.incoming.bytes_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.bytes
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ network.outgoing.bytes_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outgoing.bytes
+ network.outgoing.bytes_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outgoing.bytes
+ network.incoming.bytes_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ network.outpoing.packets_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outpoing.packets
+ network.outpoing.packets_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outpoing.packets
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ feature_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - feature
+ feature_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - feature
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - dependency
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ dependency_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - dependency
+ link_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - link
+ link_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..0570cebdc2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml
@@ -0,0 +1,483 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ repl_net_ips:
+ label: repl network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of repl network
+ default:
+ - 107.239.33.57
+ - 107.239.33.58
+ entry_schema:
+ type: string
+ sl_net_name:
+ label: silver lining network name
+ hidden: false
+ immutable: false
+ type: string
+ description: id of the sl network
+ default: exn_protected_net_0
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ entry_schema:
+ type: string
+ sm_server_names:
+ label: SM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the SM instance
+ default:
+ - ZRDM1MOGX01MSM001
+ - ZRDM1MOGX01MSM002
+ entry_schema:
+ type: string
+ dummy_net_netmask_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ dummy_net_netmask_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ ran_net_floating_ip:
+ label: mog ran net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog ran net virtual ip
+ default: 107.239.36.5
+ ran_net_ips:
+ label: RAN network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: RAN network ip
+ default:
+ - 107.239.36.3
+ - 107.239.36.4
+ entry_schema:
+ type: string
+ dummy_net_end_0:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.1.254
+ oam_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM image name
+ default: MOG_BASE_8.0
+ dummy_net_end_1:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.2.254
+ oam_net_name:
+ label: oam network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the oam network
+ default: oam_protected_net_0
+ oam_net_ips:
+ label: internet network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ip of the OAM network
+ default:
+ - 107.250.172.213
+ - 107.250.172.214
+ - 107.250.172.215
+ - 107.250.172.216
+ - 107.250.172.217
+ entry_schema:
+ type: string
+ ran_net_name:
+ label: RAN network name
+ hidden: false
+ immutable: false
+ type: string
+ description: RAN network name
+ default: gn_direct_net_0
+ cluster-manager-vol-1:
+ label: mog-cm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Cluster Manager volume 1
+ default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+ csb_net_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ oam_flavor_name:
+ label: OAM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of OAM instance
+ default: m3.xlarge
+ dummy_net_start_0:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.1.4
+ dummy_net_start_1:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.2.4
+ cm_flavor_name:
+ label: CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of CM instance
+ default: m3.xlarge
+ sm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: SM image name
+ default: MOG_BASE_8.0
+ ps_server_names:
+ label: PS server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PS instance
+ default:
+ - ZRDM1MOGX01MPS001
+ - ZRDM1MOGX01MPS002
+ - ZRDM1MOGX01MPS003
+ - ZRDM1MOGX01MPS004
+ entry_schema:
+ type: string
+ csb_net_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: mog_csb_net IP addresses
+ default:
+ - 172.26.0.10
+ - 172.26.0.11
+ - 172.26.0.12
+ - 172.26.0.13
+ - 172.26.0.14
+ - 172.26.0.15
+ - 172.26.0.16
+ - 172.26.0.17
+ - 172.26.0.18
+ - 172.26.0.19
+ - 172.26.0.20
+ entry_schema:
+ type: string
+ ps_flavor_name:
+ label: PS flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PS instance
+ default: m3.xlarge
+ rx_net_ips:
+ label: Rx network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: Rx network ips
+ default:
+ - 107.239.34.3
+ - 107.239.34.4
+ entry_schema:
+ type: string
+ dummy_net_name_1:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_1
+ dummy_net_cidr_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.2.0/24
+ dummy_net_name_0:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_0
+ dummy_net_cidr_0:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.1.0/24
+ oam-vol-2:
+ label: mog-oam-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 2
+ default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+ sl_net_floating_ip:
+ label: mog sl net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog sl net virtual ip
+ default: 107.239.45.6
+ session-manager-vol-1:
+ label: mog-sm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 1
+ default: 49201898-333d-4c88-b58d-cf573b091633
+ rx_net_floating_ip:
+ label: mog rx net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog rx net virtual ip
+ default: 107.239.34.5
+ session-manager-vol-2:
+ label: mog-sm-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 2
+ default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+ oam-vol-1:
+ label: mog-oam-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 1
+ default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+ csb_net_start:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 172.26.0.1
+ cm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: CM image name
+ default: MOG_BASE_8.0
+ sm_flavor_name:
+ label: SM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of SM instance
+ default: m2.xlarge4
+ ps_image_name:
+ label: PS image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PS image name
+ default: MOG_BASE_8.0
+ oam_server_names:
+ label: OAM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the OAM instance
+ default:
+ - ZRDM1MOGX01OAM001
+ - ZRDM1MOGX01OAM002
+ entry_schema:
+ type: string
+ csb_net_cidr:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 172.26.0.0/24
+ cm_server_names:
+ label: CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the CM instance
+ default:
+ - ZRDM1MOGX01MCM001
+ entry_schema:
+ type: string
+ sl_net_ips:
+ label: silver lining network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of the sl network
+ default:
+ - 107.239.45.4
+ - 107.239.45.5
+ entry_schema:
+ type: string
+ rx_net_name:
+ label: Rx network name
+ hidden: false
+ immutable: false
+ type: string
+ description: Rx network name
+ default: cor_direct_net_1
+ repl_net_name:
+ label: Replication network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the replication network
+ default: cor_direct_net_0
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ default: mog_security_group
+ csb_net_end:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 172.26.0.254
+ csb_net_name:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: int_mog_csb_net
+ node_templates:
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd01_port_0_floating_ip_count:
+ - false
+ port_pd01_port_0_network:
+ - get_input: oam_net_name
+ port_pd01_port_0_network_role_tag:
+ - oam
+ port_pd01_port_0_ip_count:
+ - false
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd01_port_1_floating_ip_count:
+ - false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_1_ip_count:
+ - false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_1_mac_count:
+ - false
+ port_pd01_port_1_network_role_tag:
+ - oam
+ port_pd01_port_0_mac_count:
+ - false
+ port_pd01_port_1_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ mandatory: true
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: pd_server
+ high_availablity: geo-activestandby
+ nfc_naming_code: Code1
+ min_instances: 1
+ max_instances: 2
+ groups:
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/in/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..65c2efbbc5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/in/MainServiceTemplate.yaml
@@ -0,0 +1,476 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ repl_net_ips:
+ label: repl network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of repl network
+ default:
+ - 107.239.33.57
+ - 107.239.33.58
+ entry_schema:
+ type: string
+ sl_net_name:
+ label: silver lining network name
+ hidden: false
+ immutable: false
+ type: string
+ description: id of the sl network
+ default: exn_protected_net_0
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ entry_schema:
+ type: string
+ sm_server_names:
+ label: SM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the SM instance
+ default:
+ - ZRDM1MOGX01MSM001
+ - ZRDM1MOGX01MSM002
+ entry_schema:
+ type: string
+ dummy_net_netmask_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ dummy_net_netmask_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ ran_net_floating_ip:
+ label: mog ran net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog ran net virtual ip
+ default: 107.239.36.5
+ ran_net_ips:
+ label: RAN network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: RAN network ip
+ default:
+ - 107.239.36.3
+ - 107.239.36.4
+ entry_schema:
+ type: string
+ dummy_net_end_0:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.1.254
+ oam_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM image name
+ default: MOG_BASE_8.0
+ dummy_net_end_1:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.2.254
+ oam_net_name:
+ label: oam network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the oam network
+ default: oam_protected_net_0
+ oam_net_ips:
+ label: internet network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ip of the OAM network
+ default:
+ - 107.250.172.213
+ - 107.250.172.214
+ - 107.250.172.215
+ - 107.250.172.216
+ - 107.250.172.217
+ entry_schema:
+ type: string
+ ran_net_name:
+ label: RAN network name
+ hidden: false
+ immutable: false
+ type: string
+ description: RAN network name
+ default: gn_direct_net_0
+ cluster-manager-vol-1:
+ label: mog-cm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Cluster Manager volume 1
+ default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+ csb_net_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ oam_flavor_name:
+ label: OAM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of OAM instance
+ default: m3.xlarge
+ dummy_net_start_0:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.1.4
+ dummy_net_start_1:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.2.4
+ cm_flavor_name:
+ label: CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of CM instance
+ default: m3.xlarge
+ sm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: SM image name
+ default: MOG_BASE_8.0
+ ps_server_names:
+ label: PS server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PS instance
+ default:
+ - ZRDM1MOGX01MPS001
+ - ZRDM1MOGX01MPS002
+ - ZRDM1MOGX01MPS003
+ - ZRDM1MOGX01MPS004
+ entry_schema:
+ type: string
+ csb_net_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: mog_csb_net IP addresses
+ default:
+ - 172.26.0.10
+ - 172.26.0.11
+ - 172.26.0.12
+ - 172.26.0.13
+ - 172.26.0.14
+ - 172.26.0.15
+ - 172.26.0.16
+ - 172.26.0.17
+ - 172.26.0.18
+ - 172.26.0.19
+ - 172.26.0.20
+ entry_schema:
+ type: string
+ ps_flavor_name:
+ label: PS flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PS instance
+ default: m3.xlarge
+ rx_net_ips:
+ label: Rx network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: Rx network ips
+ default:
+ - 107.239.34.3
+ - 107.239.34.4
+ entry_schema:
+ type: string
+ dummy_net_name_1:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_1
+ dummy_net_cidr_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.2.0/24
+ dummy_net_name_0:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_0
+ dummy_net_cidr_0:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.1.0/24
+ oam-vol-2:
+ label: mog-oam-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 2
+ default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+ sl_net_floating_ip:
+ label: mog sl net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog sl net virtual ip
+ default: 107.239.45.6
+ session-manager-vol-1:
+ label: mog-sm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 1
+ default: 49201898-333d-4c88-b58d-cf573b091633
+ rx_net_floating_ip:
+ label: mog rx net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog rx net virtual ip
+ default: 107.239.34.5
+ session-manager-vol-2:
+ label: mog-sm-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 2
+ default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+ oam-vol-1:
+ label: mog-oam-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 1
+ default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+ csb_net_start:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 172.26.0.1
+ cm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: CM image name
+ default: MOG_BASE_8.0
+ sm_flavor_name:
+ label: SM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of SM instance
+ default: m2.xlarge4
+ ps_image_name:
+ label: PS image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PS image name
+ default: MOG_BASE_8.0
+ oam_server_names:
+ label: OAM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the OAM instance
+ default:
+ - ZRDM1MOGX01OAM001
+ - ZRDM1MOGX01OAM002
+ entry_schema:
+ type: string
+ csb_net_cidr:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 172.26.0.0/24
+ cm_server_names:
+ label: CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the CM instance
+ default:
+ - ZRDM1MOGX01MCM001
+ entry_schema:
+ type: string
+ sl_net_ips:
+ label: silver lining network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of the sl network
+ default:
+ - 107.239.45.4
+ - 107.239.45.5
+ entry_schema:
+ type: string
+ rx_net_name:
+ label: Rx network name
+ hidden: false
+ immutable: false
+ type: string
+ description: Rx network name
+ default: cor_direct_net_1
+ repl_net_name:
+ label: Replication network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the replication network
+ default: cor_direct_net_0
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ default: mog_security_group
+ csb_net_end:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 172.26.0.254
+ csb_net_name:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: int_mog_csb_net
+ node_templates:
+ abstract_pd_server_1:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd01_port_0_floating_ip_count:
+ - false
+ port_pd01_port_0_network:
+ - get_input: oam_net_name
+ port_pd01_port_0_network_role_tag:
+ - oam
+ port_pd01_port_0_ip_count:
+ - false
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd01_port_1_floating_ip_count:
+ - false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_1_ip_count:
+ - false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_1_mac_count:
+ - false
+ port_pd01_port_1_network_role_tag:
+ - oam
+ port_pd01_port_0_mac_count:
+ - false
+ port_pd01_port_1_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: pd_server
+ nfc_naming_code: pd_server
+ groups:
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..3d8cacd11e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml
@@ -0,0 +1,478 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ repl_net_ips:
+ label: repl network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of repl network
+ default:
+ - 107.239.33.57
+ - 107.239.33.58
+ entry_schema:
+ type: string
+ sl_net_name:
+ label: silver lining network name
+ hidden: false
+ immutable: false
+ type: string
+ description: id of the sl network
+ default: exn_protected_net_0
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ entry_schema:
+ type: string
+ sm_server_names:
+ label: SM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the SM instance
+ default:
+ - ZRDM1MOGX01MSM001
+ - ZRDM1MOGX01MSM002
+ entry_schema:
+ type: string
+ dummy_net_netmask_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ dummy_net_netmask_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ ran_net_floating_ip:
+ label: mog ran net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog ran net virtual ip
+ default: 107.239.36.5
+ ran_net_ips:
+ label: RAN network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: RAN network ip
+ default:
+ - 107.239.36.3
+ - 107.239.36.4
+ entry_schema:
+ type: string
+ dummy_net_end_0:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.1.254
+ oam_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM image name
+ default: MOG_BASE_8.0
+ dummy_net_end_1:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.2.254
+ oam_net_name:
+ label: oam network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the oam network
+ default: oam_protected_net_0
+ oam_net_ips:
+ label: internet network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ip of the OAM network
+ default:
+ - 107.250.172.213
+ - 107.250.172.214
+ - 107.250.172.215
+ - 107.250.172.216
+ - 107.250.172.217
+ entry_schema:
+ type: string
+ ran_net_name:
+ label: RAN network name
+ hidden: false
+ immutable: false
+ type: string
+ description: RAN network name
+ default: gn_direct_net_0
+ cluster-manager-vol-1:
+ label: mog-cm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Cluster Manager volume 1
+ default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+ csb_net_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ oam_flavor_name:
+ label: OAM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of OAM instance
+ default: m3.xlarge
+ dummy_net_start_0:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.1.4
+ dummy_net_start_1:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.2.4
+ cm_flavor_name:
+ label: CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of CM instance
+ default: m3.xlarge
+ sm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: SM image name
+ default: MOG_BASE_8.0
+ ps_server_names:
+ label: PS server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PS instance
+ default:
+ - ZRDM1MOGX01MPS001
+ - ZRDM1MOGX01MPS002
+ - ZRDM1MOGX01MPS003
+ - ZRDM1MOGX01MPS004
+ entry_schema:
+ type: string
+ csb_net_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: mog_csb_net IP addresses
+ default:
+ - 172.26.0.10
+ - 172.26.0.11
+ - 172.26.0.12
+ - 172.26.0.13
+ - 172.26.0.14
+ - 172.26.0.15
+ - 172.26.0.16
+ - 172.26.0.17
+ - 172.26.0.18
+ - 172.26.0.19
+ - 172.26.0.20
+ entry_schema:
+ type: string
+ ps_flavor_name:
+ label: PS flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PS instance
+ default: m3.xlarge
+ rx_net_ips:
+ label: Rx network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: Rx network ips
+ default:
+ - 107.239.34.3
+ - 107.239.34.4
+ entry_schema:
+ type: string
+ dummy_net_name_1:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_1
+ dummy_net_cidr_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.2.0/24
+ dummy_net_name_0:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_0
+ dummy_net_cidr_0:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.1.0/24
+ oam-vol-2:
+ label: mog-oam-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 2
+ default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+ sl_net_floating_ip:
+ label: mog sl net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog sl net virtual ip
+ default: 107.239.45.6
+ session-manager-vol-1:
+ label: mog-sm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 1
+ default: 49201898-333d-4c88-b58d-cf573b091633
+ rx_net_floating_ip:
+ label: mog rx net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog rx net virtual ip
+ default: 107.239.34.5
+ session-manager-vol-2:
+ label: mog-sm-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 2
+ default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+ oam-vol-1:
+ label: mog-oam-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 1
+ default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+ csb_net_start:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 172.26.0.1
+ cm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: CM image name
+ default: MOG_BASE_8.0
+ sm_flavor_name:
+ label: SM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of SM instance
+ default: m2.xlarge4
+ ps_image_name:
+ label: PS image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PS image name
+ default: MOG_BASE_8.0
+ oam_server_names:
+ label: OAM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the OAM instance
+ default:
+ - ZRDM1MOGX01OAM001
+ - ZRDM1MOGX01OAM002
+ entry_schema:
+ type: string
+ csb_net_cidr:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 172.26.0.0/24
+ cm_server_names:
+ label: CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the CM instance
+ default:
+ - ZRDM1MOGX01MCM001
+ entry_schema:
+ type: string
+ sl_net_ips:
+ label: silver lining network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of the sl network
+ default:
+ - 107.239.45.4
+ - 107.239.45.5
+ entry_schema:
+ type: string
+ rx_net_name:
+ label: Rx network name
+ hidden: false
+ immutable: false
+ type: string
+ description: Rx network name
+ default: cor_direct_net_1
+ repl_net_name:
+ label: Replication network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the replication network
+ default: cor_direct_net_0
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ default: mog_security_group
+ csb_net_end:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 172.26.0.254
+ csb_net_name:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: int_mog_csb_net
+ node_templates:
+ abstract_pd_server_1:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd01_port_0_floating_ip_count:
+ - false
+ port_pd01_port_0_network:
+ - get_input: oam_net_name
+ port_pd01_port_0_network_role_tag:
+ - oam
+ port_pd01_port_0_ip_count:
+ - false
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd01_port_1_floating_ip_count:
+ - false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_1_ip_count:
+ - false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_1_mac_count:
+ - false
+ port_pd01_port_1_network_role_tag:
+ - oam
+ port_pd01_port_0_mac_count:
+ - false
+ port_pd01_port_1_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: pd_server
+ service_template_filter:
+ mandatory: false
+ nfc_naming_code: pd_server_code1
+ groups:
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..612a4068eb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/MainServiceTemplate.yaml
@@ -0,0 +1,479 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ repl_net_ips:
+ label: repl network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of repl network
+ default:
+ - 107.239.33.57
+ - 107.239.33.58
+ entry_schema:
+ type: string
+ sl_net_name:
+ label: silver lining network name
+ hidden: false
+ immutable: false
+ type: string
+ description: id of the sl network
+ default: exn_protected_net_0
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ entry_schema:
+ type: string
+ sm_server_names:
+ label: SM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the SM instance
+ default:
+ - ZRDM1MOGX01MSM001
+ - ZRDM1MOGX01MSM002
+ entry_schema:
+ type: string
+ dummy_net_netmask_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ dummy_net_netmask_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ ran_net_floating_ip:
+ label: mog ran net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog ran net virtual ip
+ default: 107.239.36.5
+ ran_net_ips:
+ label: RAN network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: RAN network ip
+ default:
+ - 107.239.36.3
+ - 107.239.36.4
+ entry_schema:
+ type: string
+ dummy_net_end_0:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.1.254
+ oam_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM image name
+ default: MOG_BASE_8.0
+ dummy_net_end_1:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.2.254
+ oam_net_name:
+ label: oam network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the oam network
+ default: oam_protected_net_0
+ oam_net_ips:
+ label: internet network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ip of the OAM network
+ default:
+ - 107.250.172.213
+ - 107.250.172.214
+ - 107.250.172.215
+ - 107.250.172.216
+ - 107.250.172.217
+ entry_schema:
+ type: string
+ ran_net_name:
+ label: RAN network name
+ hidden: false
+ immutable: false
+ type: string
+ description: RAN network name
+ default: gn_direct_net_0
+ cluster-manager-vol-1:
+ label: mog-cm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Cluster Manager volume 1
+ default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+ csb_net_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ oam_flavor_name:
+ label: OAM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of OAM instance
+ default: m3.xlarge
+ dummy_net_start_0:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.1.4
+ dummy_net_start_1:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.2.4
+ cm_flavor_name:
+ label: CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of CM instance
+ default: m3.xlarge
+ sm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: SM image name
+ default: MOG_BASE_8.0
+ ps_server_names:
+ label: PS server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PS instance
+ default:
+ - ZRDM1MOGX01MPS001
+ - ZRDM1MOGX01MPS002
+ - ZRDM1MOGX01MPS003
+ - ZRDM1MOGX01MPS004
+ entry_schema:
+ type: string
+ csb_net_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: mog_csb_net IP addresses
+ default:
+ - 172.26.0.10
+ - 172.26.0.11
+ - 172.26.0.12
+ - 172.26.0.13
+ - 172.26.0.14
+ - 172.26.0.15
+ - 172.26.0.16
+ - 172.26.0.17
+ - 172.26.0.18
+ - 172.26.0.19
+ - 172.26.0.20
+ entry_schema:
+ type: string
+ ps_flavor_name:
+ label: PS flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PS instance
+ default: m3.xlarge
+ rx_net_ips:
+ label: Rx network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: Rx network ips
+ default:
+ - 107.239.34.3
+ - 107.239.34.4
+ entry_schema:
+ type: string
+ dummy_net_name_1:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_1
+ dummy_net_cidr_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.2.0/24
+ dummy_net_name_0:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_0
+ dummy_net_cidr_0:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.1.0/24
+ oam-vol-2:
+ label: mog-oam-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 2
+ default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+ sl_net_floating_ip:
+ label: mog sl net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog sl net virtual ip
+ default: 107.239.45.6
+ session-manager-vol-1:
+ label: mog-sm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 1
+ default: 49201898-333d-4c88-b58d-cf573b091633
+ rx_net_floating_ip:
+ label: mog rx net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog rx net virtual ip
+ default: 107.239.34.5
+ session-manager-vol-2:
+ label: mog-sm-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 2
+ default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+ oam-vol-1:
+ label: mog-oam-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 1
+ default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+ csb_net_start:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 172.26.0.1
+ cm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: CM image name
+ default: MOG_BASE_8.0
+ sm_flavor_name:
+ label: SM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of SM instance
+ default: m2.xlarge4
+ ps_image_name:
+ label: PS image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PS image name
+ default: MOG_BASE_8.0
+ oam_server_names:
+ label: OAM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the OAM instance
+ default:
+ - ZRDM1MOGX01OAM001
+ - ZRDM1MOGX01OAM002
+ entry_schema:
+ type: string
+ csb_net_cidr:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 172.26.0.0/24
+ cm_server_names:
+ label: CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the CM instance
+ default:
+ - ZRDM1MOGX01MCM001
+ entry_schema:
+ type: string
+ sl_net_ips:
+ label: silver lining network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of the sl network
+ default:
+ - 107.239.45.4
+ - 107.239.45.5
+ entry_schema:
+ type: string
+ rx_net_name:
+ label: Rx network name
+ hidden: false
+ immutable: false
+ type: string
+ description: Rx network name
+ default: cor_direct_net_1
+ repl_net_name:
+ label: Replication network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the replication network
+ default: cor_direct_net_0
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ default: mog_security_group
+ csb_net_end:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 172.26.0.254
+ csb_net_name:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: int_mog_csb_net
+ node_templates:
+ abstract_pd_server_vm:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd01_port_0_floating_ip_count:
+ - false
+ port_pd01_port_0_network:
+ - get_input: oam_net_name
+ port_pd01_port_0_network_role_tag:
+ - oam
+ port_pd01_port_0_ip_count:
+ - false
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd01_port_1_floating_ip_count:
+ - false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_1_ip_count:
+ - false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_1_mac_count:
+ - false
+ port_pd01_port_1_network_role_tag:
+ - oam
+ port_pd01_port_0_mac_count:
+ - false
+ port_pd01_port_1_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: pd_server_vm
+ nfc_naming_code: pd_server_vm
+ groups:
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4e6fc86a67
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,378 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd01_port_0_floating_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_0_network_role_tag:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_0_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_1_floating_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd01_port_1_ip_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pd01_port_1_mac_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_1_network_role_tag:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_0_mac_count:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd01_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_count:
+ get_input:
+ - port_pd01_port_1_mac_count
+ - index_value
+ ip_count:
+ get_input:
+ - port_pd01_port_1_ip_count
+ - index_value
+ floating_ip_count:
+ get_input:
+ - port_pd01_port_1_floating_ip_count
+ - index_value
+ network_role_tag:
+ get_input:
+ - port_pd01_port_1_network_role_tag
+ - index_value
+ network:
+ get_input:
+ - port_pd01_port_1_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_01
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_pd01_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_count:
+ get_input:
+ - port_pd01_port_0_mac_count
+ - index_value
+ ip_count:
+ get_input:
+ - port_pd01_port_0_ip_count
+ - index_value
+ floating_ip_count:
+ get_input:
+ - port_pd01_port_0_floating_ip_count
+ - index_value
+ network_role_tag:
+ get_input:
+ - port_pd01_port_0_network_role_tag
+ - index_value
+ network:
+ get_input:
+ - port_pd01_port_0_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_01
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ binding_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - binding
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ binding_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - binding
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ network.incoming.packets_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.packets
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ network.incoming.packets.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.packets.rate
+ network.incoming.bytes.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.bytes.rate
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.incoming.packets.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.packets.rate
+ network.incoming.bytes.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.bytes.rate
+ attachment_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - attachment
+ network.outgoing.packets.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outgoing.packets.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ attachment_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - attachment
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ network.incoming.packets_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.packets
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ network.outgoing.bytes.rate_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outgoing.bytes.rate
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ network.incoming.bytes_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.incoming.bytes
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ network.outgoing.bytes_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outgoing.bytes
+ network.outgoing.bytes_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outgoing.bytes
+ network.incoming.bytes_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.incoming.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ network.outpoing.packets_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - network.outpoing.packets
+ network.outpoing.packets_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - network.outpoing.packets
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ feature_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - feature
+ feature_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - feature
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - dependency
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ dependency_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - dependency
+ link_pd_server_pd01_port_0:
+ - pd_server_pd01_port_0
+ - link
+ link_pd_server_pd01_port_1:
+ - pd_server_pd01_port_1
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..99ae78a60c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/out/MainServiceTemplate.yaml
@@ -0,0 +1,481 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ repl_net_ips:
+ label: repl network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of repl network
+ default:
+ - 107.239.33.57
+ - 107.239.33.58
+ entry_schema:
+ type: string
+ sl_net_name:
+ label: silver lining network name
+ hidden: false
+ immutable: false
+ type: string
+ description: id of the sl network
+ default: exn_protected_net_0
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ entry_schema:
+ type: string
+ sm_server_names:
+ label: SM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the SM instance
+ default:
+ - ZRDM1MOGX01MSM001
+ - ZRDM1MOGX01MSM002
+ entry_schema:
+ type: string
+ dummy_net_netmask_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ dummy_net_netmask_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ ran_net_floating_ip:
+ label: mog ran net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog ran net virtual ip
+ default: 107.239.36.5
+ ran_net_ips:
+ label: RAN network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: RAN network ip
+ default:
+ - 107.239.36.3
+ - 107.239.36.4
+ entry_schema:
+ type: string
+ dummy_net_end_0:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.1.254
+ oam_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM image name
+ default: MOG_BASE_8.0
+ dummy_net_end_1:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 169.254.2.254
+ oam_net_name:
+ label: oam network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the oam network
+ default: oam_protected_net_0
+ oam_net_ips:
+ label: internet network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ip of the OAM network
+ default:
+ - 107.250.172.213
+ - 107.250.172.214
+ - 107.250.172.215
+ - 107.250.172.216
+ - 107.250.172.217
+ entry_schema:
+ type: string
+ ran_net_name:
+ label: RAN network name
+ hidden: false
+ immutable: false
+ type: string
+ description: RAN network name
+ default: gn_direct_net_0
+ cluster-manager-vol-1:
+ label: mog-cm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Cluster Manager volume 1
+ default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+ csb_net_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSB internal network subnet mask
+ default: 255.255.255.0
+ oam_flavor_name:
+ label: OAM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of OAM instance
+ default: m3.xlarge
+ dummy_net_start_0:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.1.4
+ dummy_net_start_1:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 169.254.2.4
+ cm_flavor_name:
+ label: CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of CM instance
+ default: m3.xlarge
+ sm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: SM image name
+ default: MOG_BASE_8.0
+ ps_server_names:
+ label: PS server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PS instance
+ default:
+ - ZRDM1MOGX01MPS001
+ - ZRDM1MOGX01MPS002
+ - ZRDM1MOGX01MPS003
+ - ZRDM1MOGX01MPS004
+ entry_schema:
+ type: string
+ csb_net_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: mog_csb_net IP addresses
+ default:
+ - 172.26.0.10
+ - 172.26.0.11
+ - 172.26.0.12
+ - 172.26.0.13
+ - 172.26.0.14
+ - 172.26.0.15
+ - 172.26.0.16
+ - 172.26.0.17
+ - 172.26.0.18
+ - 172.26.0.19
+ - 172.26.0.20
+ entry_schema:
+ type: string
+ ps_flavor_name:
+ label: PS flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PS instance
+ default: m3.xlarge
+ rx_net_ips:
+ label: Rx network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: Rx network ips
+ default:
+ - 107.239.34.3
+ - 107.239.34.4
+ entry_schema:
+ type: string
+ dummy_net_name_1:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_1
+ dummy_net_cidr_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.2.0/24
+ dummy_net_name_0:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: mog_dummy_0
+ dummy_net_cidr_0:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 169.254.1.0/24
+ oam-vol-2:
+ label: mog-oam-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 2
+ default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+ sl_net_floating_ip:
+ label: mog sl net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog sl net virtual ip
+ default: 107.239.45.6
+ session-manager-vol-1:
+ label: mog-sm-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 1
+ default: 49201898-333d-4c88-b58d-cf573b091633
+ rx_net_floating_ip:
+ label: mog rx net virtual ip
+ hidden: false
+ immutable: false
+ type: string
+ description: mog rx net virtual ip
+ default: 107.239.34.5
+ session-manager-vol-2:
+ label: mog-sm-vol-2
+ hidden: false
+ immutable: false
+ type: string
+ description: Session Manager volume 2
+ default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+ oam-vol-1:
+ label: mog-oam-vol-1
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM volume 1
+ default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+ csb_net_start:
+ label: csb internal start
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal start
+ default: 172.26.0.1
+ cm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: CM image name
+ default: MOG_BASE_8.0
+ sm_flavor_name:
+ label: SM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of SM instance
+ default: m2.xlarge4
+ ps_image_name:
+ label: PS image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PS image name
+ default: MOG_BASE_8.0
+ oam_server_names:
+ label: OAM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the OAM instance
+ default:
+ - ZRDM1MOGX01OAM001
+ - ZRDM1MOGX01OAM002
+ entry_schema:
+ type: string
+ csb_net_cidr:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: 172.26.0.0/24
+ cm_server_names:
+ label: CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the CM instance
+ default:
+ - ZRDM1MOGX01MCM001
+ entry_schema:
+ type: string
+ sl_net_ips:
+ label: silver lining network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: ips of the sl network
+ default:
+ - 107.239.45.4
+ - 107.239.45.5
+ entry_schema:
+ type: string
+ rx_net_name:
+ label: Rx network name
+ hidden: false
+ immutable: false
+ type: string
+ description: Rx network name
+ default: cor_direct_net_1
+ repl_net_name:
+ label: Replication network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the replication network
+ default: cor_direct_net_0
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ default: mog_security_group
+ csb_net_end:
+ label: csb internal end
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal end
+ default: 172.26.0.254
+ csb_net_name:
+ label: csb internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal network name
+ default: int_mog_csb_net
+ node_templates:
+ abstract_pd_server_vm:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd01_port_0_floating_ip_count:
+ - false
+ port_pd01_port_0_network:
+ - get_input: oam_net_name
+ port_pd01_port_0_network_role_tag:
+ - oam
+ port_pd01_port_0_ip_count:
+ - false
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd01_port_1_floating_ip_count:
+ - false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_1_ip_count:
+ - false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_1_mac_count:
+ - false
+ port_pd01_port_1_network_role_tag:
+ - oam
+ port_pd01_port_0_mac_count:
+ - false
+ port_pd01_port_1_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ nfc_naming_code: pd_server_vm
+ vm_type_tag: pd_server_vm
+ min_instances: 1
+ max_instances: 5
+ groups:
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichMib/MIB.zip b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichMib/MIB.zip
new file mode 100644
index 0000000000..121afd2994
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichMib/MIB.zip
Binary files differ
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortCeilometerOutput/PortGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortCeilometerOutput/PortGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..a3a466ba26
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortCeilometerOutput/PortGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,46 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: PortGlobalTypes
+ template_version: 1.0.0
+description: Port TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.cp.nodes.network.Port:
+ derived_from: tosca.nodes.network.Port
+ capabilities:
+ network.incoming.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ properties:
+ unit:
+ type: string
+ description: Unit of the metric value
+ required: true
+ default: B
+ status: SUPPORTED
+ name:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ default: network.incoming.bytes
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ default: Number of incoming bytes
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ default: Cumulative
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ default: network
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichProcess/artifact_1kb.txt b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichProcess/artifact_1kb.txt
new file mode 100644
index 0000000000..bc1dfa15a9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichProcess/artifact_1kb.txt
@@ -0,0 +1,2 @@
+Upload_Artifacts
+The test verifies uploading an artifact when action status is locked.
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingComputeGlobalTypeServiceTemplates/ComputeGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingComputeGlobalTypeServiceTemplates/ComputeGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..9de22a8736
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingComputeGlobalTypeServiceTemplates/ComputeGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,11 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: ComputeGlobalTypes
+ template_version: 1.0.0
+description: Compute TOSCA Global Types.
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.aaaa:
+ derived_from: tosca.nodes.Compute \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingPortGlobalTypeServiceTemplates/PortGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingPortGlobalTypeServiceTemplates/PortGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..b8be7513f8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/missingPortGlobalTypeServiceTemplates/PortGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,11 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: PortGlobalTypes
+ template_version: 1.0.0
+description: Port TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.cp.nodes.network.bbb:
+ derived_from: tosca.nodes.network.Port \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..8431a3d1b8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,518 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+node_types:
+ org.openecomp.resource.abstract.nodes.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd01_port_0_floating_ip_count:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_network_role_tag:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_0_ip_count:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_floating_ip_count:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_ip_count:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_mac_count:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_network_role_tag:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_mac_count:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd01_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pd01_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ binding_pd_server_pd01_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pd01_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pd01_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pd01_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_pd_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/_index.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/_index.yml
new file mode 100644
index 0000000000..bd2d88fac0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/_index.yml
@@ -0,0 +1,13 @@
+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
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/data.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/data.yml
new file mode 100644
index 0000000000..c9a098f02a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/data.yml
@@ -0,0 +1,762 @@
+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:
+ type: string
+ description: MAC address
+ required: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IP address
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.novaServer.network.PortExtraProperties:
+ derived_from: tosca.datatypes.Root
+ description: Nova server network expand properties for port
+ properties:
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the port
+ required: false
+ status: SUPPORTED
+ mac_address:
+ type: string
+ description: MAC address to give to this port
+ required: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: The administrative state of this port
+ required: false
+ default: true
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this port
+ required: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ binding:vnic_type:
+ type: string
+ description: The vnic type to be bound on the neutron port
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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:
+ type: string
+ description: Start port
+ required: false
+ status: SUPPORTED
+ network_policy_entries_policy_rule_src_ports_end_port:
+ type: string
+ description: End port
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Address Pair.
+ properties:
+ address_mode:
+ type: string
+ description: Address Mode.
+ required: false
+ status: SUPPORTED
+ ip:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp
+ description: IP.
+ required: false
+ status: SUPPORTED
+ mac:
+ type: string
+ description: Mac.
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Destination addresses Virtual network
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrailV2.network.rule.Rule:
+ derived_from: tosca.datatypes.Root
+ description: policy rule
+ properties:
+ network_policy_entries_policy_rule_dst_addresses:
+ type: list
+ description: Destination addresses
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork
+ network_policy_entries_policy_rule_dst_ports:
+ type: list
+ description: Destination ports
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs
+ network_policy_entries_policy_rule_protocol:
+ type: string
+ description: Protocol
+ required: false
+ status: SUPPORTED
+ network_policy_entries_policy_rule_src_addresses:
+ type: list
+ description: Source addresses
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork
+ network_policy_entries_policy_rule_direction:
+ type: string
+ description: Direction
+ required: false
+ status: SUPPORTED
+ network_policy_entries_policy_rule_src_ports:
+ type: list
+ description: Source ports
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs
+ network_policy_entries_policy_rule_action_list:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList
+ description: Action list
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule:
+ derived_from: tosca.datatypes.Root
+ description: Rules Pairs
+ properties:
+ remote_group_id:
+ type: string
+ description: The remote group ID to be associated with this security group rule
+ required: false
+ status: SUPPORTED
+ protocol:
+ type: string
+ description: The protocol that is matched by the security group rule
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - tcp
+ - udp
+ - icmp
+ ethertype:
+ type: string
+ description: Ethertype of the traffic
+ required: false
+ default: IPv4
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - IPv4
+ - IPv6
+ port_range_max:
+ type: integer
+ description: 'The maximum port number in the range that is matched by the
+ security group rule. '
+ required: false
+ status: SUPPORTED
+ constraints:
+ - in_range:
+ - 0
+ - 65535
+ remote_ip_prefix:
+ type: string
+ description: The remote IP prefix (CIDR) to be associated with this security group rule
+ required: false
+ status: SUPPORTED
+ remote_mode:
+ type: string
+ description: Whether to specify a remote group or a remote IP prefix
+ required: false
+ default: remote_ip_prefix
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - remote_ip_prefix
+ - remote_group_id
+ direction:
+ type: string
+ description: The direction in which the security group rule is applied
+ required: false
+ default: ingress
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - egress
+ - ingress
+ port_range_min:
+ type: integer
+ description: The minimum port number in the range that is matched by the security group rule.
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Network ipam refs data ipam subnets ip prefix len
+ required: false
+ status: SUPPORTED
+ network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
+ type: string
+ description: Network ipam refs data ipam subnets ip prefix
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Sub Interface VLAN Tag.
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: IP Prefix.
+ required: false
+ status: SUPPORTED
+ ip_prefix_len:
+ type: integer
+ description: IP Prefix Len.
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Source addresses Virtual network
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Simple Action
+ required: false
+ status: SUPPORTED
+ network_policy_entries_policy_rule_action_list_apply_service:
+ type: list
+ description: Apply Service
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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:
+ type: list
+ description: Network ipam refs data ipam subnets
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList
+ org.openecomp.datatypes.heat.FileInfo:
+ derived_from: tosca.datatypes.Root
+ description: Heat File Info
+ properties:
+ file:
+ type: string
+ description: The required URI string (relative or absolute) which can be used to locate the file
+ required: true
+ status: SUPPORTED
+ file_type:
+ type: string
+ description: The type of the file
+ required: true
+ status: SUPPORTED
+ 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:
+ type: list
+ description: An ordered list of static routes to be added to this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ virtual_network:
+ type: string
+ description: Virtual Network for this interface
+ required: true
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: List of allowed address pair for this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ ip_address:
+ type: string
+ description: IP for this interface
+ required: false
+ status: SUPPORTED
+ 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:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence
+ description: Network Policy ref data sequence
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Start port
+ required: false
+ status: SUPPORTED
+ network_policy_entries_policy_rule_dst_ports_end_port:
+ type: string
+ description: End port
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.network.AllocationPool:
+ derived_from: tosca.datatypes.Root
+ description: The start and end addresses for the allocation pool
+ properties:
+ start:
+ type: string
+ description: Start address for the allocation pool
+ required: false
+ status: SUPPORTED
+ end:
+ type: string
+ description: End address for the allocation pool
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrail.network.rule.PortPairs:
+ derived_from: tosca.datatypes.Root
+ description: source and destination port pairs
+ properties:
+ start_port:
+ type: string
+ description: Start port
+ required: false
+ status: SUPPORTED
+ end_port:
+ type: string
+ description: End port
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: source and destination addresses
+ properties:
+ virtual_network:
+ type: string
+ description: Virtual network
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrail.network.rule.RuleList:
+ derived_from: tosca.datatypes.Root
+ description: list of policy rules
+ properties:
+ policy_rule:
+ type: list
+ description: Contrail network rule
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.Rule
+ org.openecomp.datatypes.heat.network.contrail.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: Address Pair
+ properties:
+ address_mode:
+ type: string
+ description: Address mode active-active or active-standy
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - active-active
+ - active-standby
+ prefix:
+ type: string
+ description: IP address prefix
+ required: false
+ status: SUPPORTED
+ mac_address:
+ type: string
+ description: Mac address
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Sub Interface Mac Address.
+ properties:
+ mac_address:
+ type: list
+ description: Mac Addresses List.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet
+ description: Network ipam refs data ipam subnets
+ required: false
+ status: SUPPORTED
+ network_ipam_refs_data_ipam_subnets_addr_from_start:
+ type: string
+ description: Network ipam refs data ipam subnets addr from start
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList:
+ derived_from: tosca.datatypes.Root
+ description: list of policy rules
+ properties:
+ network_policy_entries_policy_rule:
+ type: list
+ description: Contrail network rule
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.Rule
+ org.openecomp.datatypes.heat.novaServer.network.AddressInfo:
+ derived_from: tosca.datatypes.network.NetworkInfo
+ description: Network addresses with corresponding port id
+ properties:
+ port_id:
+ type: string
+ description: Port id
+ required: false
+ status: SUPPORTED
+ 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:
+ type: list
+ description: Addresses pair List.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair
+ org.openecomp.datatypes.heat.neutron.port.FixedIps:
+ derived_from: tosca.datatypes.Root
+ description: subnet/ip_address
+ properties:
+ subnet:
+ type: string
+ description: Subnet in which to allocate the IP address for this port
+ required: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IP address desired in the subnet for this port
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties:
+ derived_from: tosca.datatypes.Root
+ description: Virtual Machine Interface Properties.
+ properties:
+ service_interface_type:
+ type: string
+ description: Service Interface Type.
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.network.subnet.HostRoute:
+ derived_from: tosca.datatypes.Root
+ description: Host route info for the subnet
+ properties:
+ destination:
+ type: string
+ description: The destination for static route
+ required: false
+ status: SUPPORTED
+ nexthop:
+ type: string
+ description: The next hop for the destination
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.network.contrail.port.StaticRoute:
+ derived_from: tosca.datatypes.Root
+ description: static route
+ properties:
+ prefix:
+ type: string
+ description: Route prefix
+ required: false
+ status: SUPPORTED
+ next_hop:
+ type: string
+ description: Next hop
+ required: false
+ status: SUPPORTED
+ next_hop_type:
+ type: string
+ description: Next hop type
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.substitution.SubstitutionFiltering:
+ derived_from: tosca.datatypes.Root
+ description: Substitution Filter
+ properties:
+ substitute_service_template:
+ type: string
+ description: Substitute Service Template
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of the substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ count:
+ type: string
+ description: Count
+ required: false
+ default: 1
+ status: SUPPORTED
+ scaling_enabled:
+ type: boolean
+ description: Indicates whether service scaling is enabled
+ required: false
+ default: true
+ status: SUPPORTED
+ mandatory:
+ type: boolean
+ description: Mandatory
+ required: false
+ default: true
+ status: SUPPORTED
+ 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:
+ type: string
+ description: The ID of the tenant who owns the network
+ required: false
+ status: SUPPORTED
+ enable_dhcp:
+ type: boolean
+ description: Set to true if DHCP is enabled and false if DHCP is disabled
+ required: false
+ default: true
+ status: SUPPORTED
+ ipv6_address_mode:
+ type: string
+ description: IPv6 address mode
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ ipv6_ra_mode:
+ type: string
+ description: IPv6 RA (Router Advertisement) mode
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ allocation_pools:
+ type: list
+ description: The start and end addresses for the allocation pools
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AllocationPool
+ subnetpool:
+ type: string
+ description: The name or ID of the subnet pool
+ required: false
+ status: SUPPORTED
+ dns_nameservers:
+ type: list
+ description: A specified set of DNS name servers to be used
+ required: false
+ default: [
+ ]
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ host_routes:
+ type: list
+ description: The gateway IP address
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.subnet.HostRoute
+ ip_version:
+ type: integer
+ description: The gateway IP address
+ required: false
+ default: 4
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ name:
+ type: string
+ description: The name of the subnet
+ required: false
+ status: SUPPORTED
+ prefixlen:
+ type: integer
+ description: Prefix length for subnet allocation from subnet pool
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ cidr:
+ type: string
+ description: The CIDR
+ required: false
+ status: SUPPORTED
+ gateway_ip:
+ type: string
+ description: The gateway IP address
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrail.network.rule.Rule:
+ derived_from: tosca.datatypes.Root
+ description: policy rule
+ properties:
+ src_ports:
+ type: list
+ description: Source ports
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ protocol:
+ type: string
+ description: Protocol
+ required: false
+ status: SUPPORTED
+ dst_addresses:
+ type: list
+ description: Destination addresses
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ apply_service:
+ type: string
+ description: Service to apply
+ required: false
+ status: SUPPORTED
+ dst_ports:
+ type: list
+ description: Destination ports
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ src_addresses:
+ type: list
+ description: Source addresses
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ direction:
+ type: string
+ description: Direction
+ required: false
+ status: SUPPORTED
+ 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:
+ type: integer
+ description: Network Policy ref data sequence Major
+ required: false
+ status: SUPPORTED
+ network_policy_refs_data_sequence_minor:
+ type: integer
+ description: Network Policy ref data sequence Minor
+ required: false
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/groups.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/groups.yml
new file mode 100644
index 0000000000..86a8f8dc71
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/groups.yml
@@ -0,0 +1,22 @@
+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:
+ type: string
+ description: Heat file which associate to this group/heat stack
+ required: true
+ status: SUPPORTED
+ description:
+ type: string
+ description: group description
+ required: true
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/nodes.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/nodes.yml
new file mode 100644
index 0000000000..dc5f1f6273
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp-heat/nodes.yml
@@ -0,0 +1,1191 @@
+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:
+ type: string
+ description: Availability zone to create servers in
+ required: false
+ status: SUPPORTED
+ static_routes_list:
+ type: list
+ description: Static routes enabled
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ availability_zone_enable:
+ type: boolean
+ description: Indicates availability zone is enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ service_template_name:
+ type: string
+ description: Service template name
+ required: false
+ status: SUPPORTED
+ ordered_interfaces:
+ type: boolean
+ description: Indicates if service interface are ordered
+ required: false
+ default: false
+ status: SUPPORTED
+ flavor:
+ type: string
+ description: flavor
+ required: false
+ status: SUPPORTED
+ image_name:
+ type: string
+ description: Image name
+ required: true
+ status: SUPPORTED
+ service_type:
+ type: string
+ description: Service type
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - firewall
+ - analyzer
+ - source-nat
+ - loadbalancer
+ service_interface_type_list:
+ type: list
+ description: List of interface types
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ service_instance_name:
+ type: string
+ description: Service instance name
+ required: true
+ status: SUPPORTED
+ interface_list:
+ type: list
+ description: List of interfaces
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.InterfaceData
+ service_mode:
+ type: string
+ description: Service mode
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - transparent
+ - in-network
+ - in-network-nat
+ shared_ip_list:
+ type: list
+ description: Shared ips enabled
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ attributes:
+ tenant_id:
+ type: string
+ description: Tenant id of the Service Instance
+ status: SUPPORTED
+ fq_name:
+ type: string
+ description: The FQ name of the service instance
+ status: SUPPORTED
+ service_template_name:
+ type: string
+ description: Service Template of the Service Instance
+ status: SUPPORTED
+ show:
+ type: string
+ description: All attributes
+ status: SUPPORTED
+ active_vms:
+ type: string
+ description: Number of service VMs active for this Service Instance
+ status: SUPPORTED
+ service_instance_name:
+ type: string
+ description: The name of the service instance
+ status: SUPPORTED
+ virtual_machines:
+ type: string
+ description: Service VMs for the Service Instance
+ status: SUPPORTED
+ status:
+ type: string
+ description: Status of the service instance
+ status: SUPPORTED
+ org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface:
+ derived_from: org.openecomp.resource.cp.nodes.network.CP
+ properties:
+ name:
+ type: string
+ description: Virtual Machine Interface name
+ required: false
+ status: SUPPORTED
+ security_group_refs:
+ type: list
+ description: List of security groups.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ virtual_network_refs:
+ type: list
+ description: List of virtual networks.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ virtual_machine_interface_properties:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ description: virtual machine interface properties.
+ required: false
+ status: SUPPORTED
+ port_tuple_refs:
+ type: list
+ description: List of port tuples.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ virtual_machine_interface_mac_addresses:
+ type: list
+ description: List of mac addresses.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ virtual_machine_interface_allowed_address_pairs:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ description: Virtual Machine Interface allowed address pairs.
+ required: false
+ status: SUPPORTED
+ attributes:
+ fq_name:
+ type: string
+ description: The FQ name of the Virtual Network.
+ status: SUPPORTED
+ show:
+ type: string
+ description: All attributes.
+ status: SUPPORTED
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ entries:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.RuleList
+ description: A symbolic name for this contrail network rule
+ required: false
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this contrail network rule
+ required: false
+ status: SUPPORTED
+ attributes:
+ tenant_id:
+ type: string
+ description: tenant_id
+ status: SUPPORTED
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+ show:
+ type: string
+ description: All attributes.
+ status: SUPPORTED
+ rules:
+ type: list
+ description: List of rules
+ 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:
+ type: string
+ description: Description of the security group
+ required: false
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this security group, which is not required to be unique.
+ required: false
+ status: SUPPORTED
+ rules:
+ type: list
+ description: List of security group rules
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule
+ attributes:
+ show:
+ type: string
+ description: Detailed information about resource
+ 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.VL
+ properties:
+ shared:
+ type: string
+ description: Is virtual network shared
+ required: false
+ status: SUPPORTED
+ forwarding_mode:
+ type: string
+ description: forwarding mode of the virtual network
+ required: false
+ status: SUPPORTED
+ external:
+ type: string
+ description: Is virtual network external
+ required: false
+ status: SUPPORTED
+ allow_transit:
+ type: string
+ description: Whether this network should be transitive.
+ required: false
+ status: SUPPORTED
+ flood_unknown_unicast:
+ type: string
+ description: flood L2 packets on network
+ required: false
+ status: SUPPORTED
+ route_targets:
+ type: list
+ description: route targets associated with the virtual network
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ attributes:
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+ show:
+ type: string
+ description: All attributes.
+ status: SUPPORTED
+ subnets_name:
+ type: list
+ description: Subnets name of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets_show:
+ type: map
+ description: Detailed information about each subnet
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ 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:
+ type: string
+ description: The administrator password for the server
+ required: false
+ status: SUPPORTED
+ availability_zone:
+ type: string
+ description: Availability zone to create servers in
+ required: false
+ status: SUPPORTED
+ image:
+ type: string
+ description: The ID or name of the image to boot with
+ required: false
+ status: SUPPORTED
+ image_update_policy:
+ type: string
+ description: Policy on how to apply an image-id update
+ required: false
+ default: REBUILD
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REBUILD_PRESERVE_EPHEMERAL
+ - REPLACE
+ - REBUILD
+ metadata:
+ type: json
+ description: Arbitrary JSON metadata to store for this server
+ required: false
+ status: SUPPORTED
+ contrail_service_instance_ind:
+ type: boolean
+ description: Nova server related to service instance indicator
+ required: false
+ default: false
+ status: SUPPORTED
+ user_data_update_policy:
+ type: string
+ description: Policy on how to apply a user_data update
+ required: false
+ default: REPLACE
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REPLACE
+ - IGNORE
+ flavor_update_policy:
+ type: string
+ description: Policy on how to apply a flavor update
+ required: false
+ default: RESIZE
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - RESIZE
+ - REPLACE
+ user_data:
+ type: string
+ description: User data script to be executed by cloud-init
+ required: false
+ default: ''
+ status: SUPPORTED
+ flavor:
+ type: string
+ description: The ID or name of the flavor to boot onto
+ required: true
+ status: SUPPORTED
+ key_name:
+ type: string
+ description: Name of keypair to inject into the server
+ required: false
+ status: SUPPORTED
+ reservation_id:
+ type: string
+ description: A UUID for the set of servers being requested
+ required: false
+ status: SUPPORTED
+ security_groups:
+ type: list
+ description: List of security group names or IDs
+ required: false
+ default: [
+ ]
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ config_drive:
+ type: boolean
+ description: enable config drive on the server
+ required: false
+ status: SUPPORTED
+ personality:
+ type: map
+ description: A map of files to create/overwrite on the server upon boot
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ software_config_transport:
+ type: string
+ description: How the server should receive the metadata required for software configuration
+ required: false
+ default: POLL_SERVER_CFN
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - POLL_SERVER_CFN
+ - POLL_SERVER_HEAT
+ - POLL_TEMP_URL
+ - ZAQAR_MESSAGE
+ user_data_format:
+ type: string
+ description: How the user_data should be formatted for the server
+ required: false
+ default: HEAT_CFNTOOLS
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - SOFTWARE_CONFIG
+ - RAW
+ - HEAT_CFNTOOLS
+ diskConfig:
+ type: string
+ description: Control how the disk is partitioned when the server is created
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - AUTO
+ - MANUAL
+ name:
+ type: string
+ description: Server name
+ required: false
+ status: SUPPORTED
+ scheduler_hints:
+ type: map
+ description: Arbitrary key-value pairs specified by the client to help boot a server
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ accessIPv4:
+ type: string
+ description: The manually assigned alternative public IPv4 address of the server
+ status: SUPPORTED
+ addresses:
+ type: map
+ description: A dict of all network addresses with corresponding port_id
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+ accessIPv6:
+ type: string
+ description: The manually assigned alternative public IPv6 address of the server
+ status: SUPPORTED
+ instance_name:
+ type: string
+ description: AWS compatible instance name
+ status: SUPPORTED
+ name:
+ type: string
+ description: Name of the server
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ console_urls:
+ type: string
+ description: URLs of servers consoles
+ status: SUPPORTED
+ org.openecomp.resource.vfc.rules.nodes.heat.network.contrailV2.NetworkRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ name:
+ type: string
+ description: A symbolic name for this contrail v2 network rule
+ required: false
+ status: SUPPORTED
+ network_policy_entries:
+ type: org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList
+ description: A symbolic name for this contrail v2 network rule
+ required: false
+ status: SUPPORTED
+ attributes:
+ fq_name:
+ type: string
+ description: fq_name
+ 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.CP
+ properties:
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the network
+ required: false
+ status: SUPPORTED
+ device_id:
+ type: string
+ description: Device ID of this port
+ required: false
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this network
+ required: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ binding:vnic_type:
+ type: string
+ description: The vnic type to be bound on the neutron port
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ device_owner:
+ type: string
+ description: Name of the network owning the port
+ required: false
+ status: SUPPORTED
+ network:
+ type: string
+ description: Network this port belongs to
+ required: false
+ status: SUPPORTED
+ replacement_policy:
+ type: string
+ description: Policy on how to respond to a stack-update for this resource
+ required: false
+ default: AUTO
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REPLACE_ALWAYS
+ - AUTO
+ security_groups:
+ type: list
+ description: List of security group names or IDs
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ fixed_ips:
+ type: list
+ description: Desired IPs for this port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ mac_address:
+ type: string
+ description: MAC address to give to this port
+ required: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: A boolean value specifying the administrative status of the network
+ required: false
+ default: true
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this port
+ required: false
+ status: SUPPORTED
+ attributes:
+ tenant_id:
+ type: string
+ description: Tenant owning the port
+ status: SUPPORTED
+ network_id:
+ type: string
+ description: Unique identifier for the network owning the port
+ status: SUPPORTED
+ qos_policy_id:
+ type: string
+ description: The QoS policy ID attached to this network
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ subnets:
+ type: list
+ description: Subnets of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ status:
+ type: string
+ description: The status of the network
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ org.openecomp.resource.vl.nodes.heat.network.neutron.Net:
+ derived_from: org.openecomp.resource.vl.nodes.network.VL
+ properties:
+ dhcp_agent_ids:
+ type: list
+ description: The IDs of the DHCP agent to schedule the network
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ tenant_id:
+ type: string
+ description: The ID of the tenant which will own the network
+ required: false
+ status: SUPPORTED
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the network
+ required: false
+ status: SUPPORTED
+ shared:
+ type: boolean
+ description: Whether this network should be shared across all tenants
+ required: false
+ default: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: A boolean value specifying the administrative status of the network
+ required: false
+ default: true
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this network
+ required: false
+ status: SUPPORTED
+ subnets:
+ type: map
+ description: Network related subnets
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ qos_policy_id:
+ type: string
+ description: The QoS policy ID attached to this network
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ subnets_name:
+ type: list
+ description: Subnets name of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ mtu:
+ type: scalar-unit.size
+ description: The maximum transmission unit size(in bytes) for the network
+ status: SUPPORTED
+ status:
+ type: string
+ description: The status of the network
+ 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.CP
+ properties:
+ static_routes:
+ type: list
+ description: An ordered list of static routes to be added to this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ virtual_network:
+ type: string
+ description: Virtual Network for this interface
+ required: true
+ status: SUPPORTED
+ static_route:
+ type: boolean
+ description: Static route enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: List of allowed address pair for this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ shared_ip:
+ type: boolean
+ description: Shared ip enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IP for this interface
+ required: false
+ status: SUPPORTED
+ interface_type:
+ type: string
+ description: Interface type
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ attributes:
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.contrail.Compute:
+ derived_from: org.openecomp.resource.vfc.nodes.Compute
+ properties:
+ flavor:
+ type: string
+ description: flavor
+ required: false
+ status: SUPPORTED
+ image_name:
+ type: string
+ description: Image name
+ required: true
+ status: SUPPORTED
+ availability_zone:
+ type: string
+ description: Availability zone to create servers in
+ required: false
+ status: SUPPORTED
+ service_type:
+ type: string
+ description: Service type
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - firewall
+ - analyzer
+ - source-nat
+ - loadbalancer
+ availability_zone_enable:
+ type: boolean
+ description: Indicates availability zone is enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ service_template_name:
+ type: string
+ description: Service template name
+ required: false
+ status: SUPPORTED
+ service_instance_name:
+ type: string
+ description: Service instance name
+ required: true
+ status: SUPPORTED
+ service_mode:
+ type: string
+ description: Service mode
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - transparent
+ - in-network
+ - in-network-nat
+ attributes:
+ tenant_id:
+ type: string
+ description: Tenant id of the VM
+ status: SUPPORTED
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+ show:
+ type: string
+ description: All attributes
+ status: SUPPORTED
+ active_vms:
+ type: string
+ description: Number of active VMs
+ status: SUPPORTED
+ virtual_machines:
+ type: string
+ description: VMs of this compute
+ status: SUPPORTED
+ status:
+ type: string
+ description: status of the compute
+ 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:
+ type: list
+ description: List of virtual machine interface.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ name:
+ type: string
+ description: Virtual Machine Sub Interface VLAN name
+ required: false
+ status: SUPPORTED
+ virtual_network_refs:
+ type: list
+ description: List of virtual networks.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ virtual_machine_interface_properties:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties
+ description: virtual machine interface properties.
+ required: false
+ status: SUPPORTED
+ virtual_machine_interface_allowed_address_pairs:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ description: Virtual Machine Sub Interface allowed address pairs.
+ required: false
+ status: SUPPORTED
+ virtual_machine_interface_mac_addresses:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress
+ description: List of mac addresses.
+ required: false
+ status: SUPPORTED
+ security_group_refs:
+ type: list
+ description: List of security groups.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_tuple_refs:
+ type: list
+ description: List of port tuples.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ fq_name:
+ type: string
+ description: The FQ name of the Virtual Network.
+ status: SUPPORTED
+ show:
+ type: string
+ description: All attributes.
+ status: SUPPORTED
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.resource.cp.nodes.network.CP
+ 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.VL
+ properties:
+ network_ipam_refs_data:
+ type: list
+ description: IPAM references Data
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData
+ network_policy_refs_data:
+ type: list
+ description: Policy references data
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData
+ network_ipam_refs:
+ type: list
+ description: IPAM references
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ network_policy_refs:
+ type: list
+ description: Policy references
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ attributes:
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+ subnets_name:
+ type: list
+ description: Subnets name of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets_show:
+ type: map
+ description: Detailed information about each subnet
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ 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:
+ type: string
+ description: The availability zone in which the volume will be created
+ required: false
+ status: SUPPORTED
+ image:
+ type: string
+ description: If specified, the name or ID of the image to create the volume from
+ required: false
+ status: SUPPORTED
+ metadata:
+ type: map
+ description: Key/value pairs to associate with the volume
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ volume_type:
+ type: string
+ description: If specified, the type of volume to use, mapping to a specific backend
+ required: false
+ status: SUPPORTED
+ description:
+ type: string
+ description: A description of the volume
+ required: false
+ status: SUPPORTED
+ device_type:
+ type: string
+ description: Device type
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - cdrom
+ - disk
+ disk_bus:
+ type: string
+ description: 'Bus of the device: hypervisor driver chooses a suitable default
+ if omitted'
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - ide
+ - lame_bus
+ - scsi
+ - usb
+ - virtio
+ backup_id:
+ type: string
+ description: If specified, the backup to create the volume from
+ required: false
+ status: SUPPORTED
+ source_volid:
+ type: string
+ description: If specified, the volume to use as source
+ required: false
+ status: SUPPORTED
+ boot_index:
+ type: integer
+ description: Integer used for ordering the boot disks
+ required: false
+ status: SUPPORTED
+ size:
+ type: scalar-unit.size
+ description: The requested storage size (default unit is MB)
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 1 GB
+ read_only:
+ type: boolean
+ description: Enables or disables read-only access mode of volume
+ required: false
+ status: SUPPORTED
+ name:
+ type: string
+ description: A name used to distinguish the volume
+ required: false
+ status: SUPPORTED
+ scheduler_hints:
+ type: map
+ description: Arbitrary key-value pairs specified by the client to help the Cinder scheduler creating a volume
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ swap_size:
+ type: scalar-unit.size
+ description: The size of the swap, in MB
+ required: false
+ status: SUPPORTED
+ delete_on_termination:
+ type: boolean
+ description: Indicate whether the volume should be deleted when the server is terminated
+ required: false
+ status: SUPPORTED
+ multiattach:
+ type: boolean
+ description: Whether allow the volume to be attached more than once
+ required: false
+ status: SUPPORTED
+ attributes:
+ display_description:
+ type: string
+ description: Description of the volume
+ status: SUPPORTED
+ attachments:
+ type: string
+ description: The list of attachments of the volume
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ encrypted:
+ type: boolean
+ description: Boolean indicating if the volume is encrypted or not
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ created_at:
+ type: timestamp
+ description: The timestamp indicating volume creation
+ status: SUPPORTED
+ display_name:
+ type: string
+ description: Name of the volume
+ status: SUPPORTED
+ metadata_values:
+ type: map
+ description: Key/value pairs associated with the volume in raw dict form
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ bootable:
+ type: boolean
+ description: Boolean indicating if the volume can be booted or not
+ status: SUPPORTED
+ status:
+ type: string
+ description: The current status of the volume
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/_index.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/_index.yml
new file mode 100644
index 0000000000..897fff2714
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/_index.yml
@@ -0,0 +1,17 @@
+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/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/capabilities.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/capabilities.yml
new file mode 100644
index 0000000000..a36b5569f5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/capabilities.yml
@@ -0,0 +1,77 @@
+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:
+ type: string
+ description: Object Id of the metric
+ required: true
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Object Id of the metric
+ required: true
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+ required: true
+ status: SUPPORTED
+ 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:
+ type: string
+ description: Unit of the metric value
+ required: true
+ status: SUPPORTED
+ description:
+ type: string
+ description: Description of the metric
+ required: false
+ status: SUPPORTED
+ type:
+ type: string
+ description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+ required: true
+ status: SUPPORTED
+ category:
+ type: string
+ description: Category of the metric, for an example, compute, disk, network, storage and etc.
+ required: false
+ status: SUPPORTED
+ attributes:
+ value:
+ type: string
+ description: Runtime monitored value
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/data.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/data.yml
new file mode 100644
index 0000000000..bc869cc6da
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/data.yml
@@ -0,0 +1,475 @@
+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:
+ type: boolean
+ description: \"true\" indicates that this a Neutron provider type of network
+ required: true
+ status: SUPPORTED
+ physical_network_name:
+ type: string
+ 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)
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - Physnet41
+ - Physnet42
+ - Physnet43
+ - Physnet44
+ - Physnet21
+ - Physnet22
+ numa:
+ type: string
+ 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)
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - NUMA 0
+ - NUMA 1
+ pnic_instance:
+ type: integer
+ description: PNIC instance within the NUMA processor cluster
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.DeploymentFlavor:
+ derived_from: tosca.datatypes.Root
+ description: Deployment Flavor
+ properties:
+ name:
+ type: string
+ description: Deployment Flavor Name
+ required: true
+ status: SUPPORTED
+ license_feature_group:
+ type: org.openecomp.datatypes.FeatureGroup
+ description: license feature group associated with Deployment Flavor
+ required: true
+ status: SUPPORTED
+ compute_size:
+ type: org.openecomp.datatypes.ComputeFlavor
+ description: Size of VM
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.FeatureGroup:
+ derived_from: tosca.datatypes.Root
+ description: License Feature Group
+ properties:
+ license_feature_group_ref:
+ type: string
+ description: Deployment Flavor Name
+ required: true
+ status: SUPPORTED
+ part_number:
+ type: string
+ description: refrence part number related to feature group
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.EcompHoming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_selected_instance_node_target:
+ type: boolean
+ 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).
+ required: true
+ default: false
+ status: SUPPORTED
+ homing_policy:
+ type: string
+ description: Referenc to a service level homing policy that OPENECOMP will use for instance deployment target node
+ required: false
+ status: SUPPORTED
+ instance_node_target:
+ type: string
+ description: Instance target deployment node
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.AssignmentRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_required:
+ type: boolean
+ description: |
+ "true" indicates that assignment is required
+ required: true
+ default: false
+ status: SUPPORTED
+ count:
+ type: integer
+ description: number of assignments required
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.network.IpRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ip_version:
+ type: integer
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ ip_count:
+ type: org.openecomp.datatypes.AssignmentRequirements
+ description: identifies the number of ip address to assign to the CP from the plan
+ required: true
+ status: SUPPORTED
+ floating_ip_count:
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+ status: SUPPORTED
+ subnet_role:
+ type: string
+ required: false
+ status: SUPPORTED
+ assingment_method:
+ type: string
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - fixed
+ - dhcp
+ org.openecomp.datatypes.network.PhysicalNetwork:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ provider_network:
+ type: boolean
+ description: true indicates that this a Neutron provider type of network
+ required: true
+ status: SUPPORTED
+ physical_network_name:
+ type: string
+ 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)
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - Physnet-SRIOV-1
+ - Physnet-SRIOV-2
+ - Physnet-SRIOV-11
+ - Physnet-SRIOV-12
+ numa:
+ type: string
+ 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)
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - NUMA 0
+ - NUMA 1
+ pnic_instance:
+ type: integer
+ description: PNIC instance within the NUMA processor cluster
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.network.VlanRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ vlan_range_plan:
+ type: string
+ description: reference to a vlan range plan
+ required: true
+ status: SUPPORTED
+ vlan_type:
+ type: string
+ description: identifies the vlan type (e.g., c-tag)
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - c-tag
+ - s-tag
+ vlan_count:
+ type: integer
+ description: identifies the number of vlan tags to assign to the CP from the plan
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.ComputeFlavor:
+ derived_from: tosca.datatypes.Root
+ description: Compute Flavor (Size)
+ properties:
+ name:
+ type: string
+ description: Compute Flavor Name
+ required: true
+ status: SUPPORTED
+ num_cpus:
+ type: integer
+ description: Number of cpu
+ required: true
+ status: SUPPORTED
+ disk_size:
+ type: scalar-unit.size
+ description: Disk size
+ required: true
+ status: SUPPORTED
+ mem_size:
+ type: scalar-unit.size
+ description: Memory size
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.network.MacAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ mac_range_plan:
+ type: string
+ description: reference to a MAC address range plan
+ required: true
+ status: SUPPORTED
+ mac_count:
+ type: integer
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.network.MacRequirements:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ mac_range_plan:
+ type: string
+ description: reference to a MAC address range plan
+ required: true
+ status: SUPPORTED
+ mac_count:
+ type: org.openecomp.datatypes.AssignmentRequirements
+ description: identifies the number of MAC addresses to assign to the CP from the plan
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.network.SubnetAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ip_network_address_plan:
+ type: string
+ description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network
+ required: false
+ status: SUPPORTED
+ dhcp_enabled:
+ type: boolean
+ description: \"true\" indicates the network has 1 or more policies
+ required: false
+ status: SUPPORTED
+ ip_version:
+ type: integer
+ description: The IP version of the subnet
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ cidr_mask:
+ type: integer
+ description: The default subnet CIDR mask
+ required: true
+ status: SUPPORTED
+ min_subnets_count:
+ type: integer
+ description: Quantity of subnets that must be initially assigned
+ required: true
+ default: 1
+ status: SUPPORTED
+ org.openecomp.datatypes.Artifact:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ artifact_name:
+ type: string
+ description: Artifcat name
+ required: true
+ status: SUPPORTED
+ artifact_type:
+ type: string
+ description: Artifcat type
+ required: true
+ status: SUPPORTED
+ artifact_uuid:
+ type: string
+ description: Artifcat UUID
+ required: true
+ status: SUPPORTED
+ artifact_checksum:
+ type: string
+ description: Artifact checksum
+ required: true
+ status: SUPPORTED
+ artifact_url:
+ type: string
+ description: Artifcay URL. Can also include only the file name
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.network.IPv4SubnetAssignments:
+ derived_from: org.openecomp.datatypes.network.SubnetAssignments
+ properties:
+ use_ipv4:
+ type: boolean
+ description: Indicates IPv4 subnet assignments
+ required: true
+ status: SUPPORTED
+ 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
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ description: |
+ A placeholder for missing properties that would be included in future openecomp model
+ versions. fromat <key>:<value>
+ type: string
+ org.openecomp.datatypes.substitution.SubstitutionFiltering:
+ derived_from: tosca.datatypes.Root
+ description: Substitution Filter
+ properties:
+ substitute_service_template:
+ type: string
+ description: Substitute Service Template
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of the substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ count:
+ type: string
+ description: Count
+ required: false
+ default: 1
+ status: SUPPORTED
+ scaling_enabled:
+ type: boolean
+ description: Indicates whether service scaling is enabled
+ required: false
+ default: true
+ status: SUPPORTED
+ mandatory:
+ type: boolean
+ description: Mandatory
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.network.NetworkFlows:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ is_network_policy:
+ type: boolean
+ description: true indicates the network has 1 or more policies
+ required: false
+ default: false
+ status: SUPPORTED
+ network_policy:
+ type: string
+ description: Identifies the specific OPENECOMP Contrail network policy that must be applied to this network (source - from Policy Manager)
+ required: false
+ status: SUPPORTED
+ vpn_binding:
+ type: string
+ description: Identifies the specific VPN Binding entry in A&AI that must be applied when creating this network (source - A&AI)
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.network.NetworkAssignments:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_network_assignment:
+ type: boolean
+ 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).
+ required: true
+ default: false
+ status: SUPPORTED
+ network_assignments_file:
+ type: string
+ description: Filename of the template that specifies all of the configurable name/value pairs of Network assignments in this Network model
+ required: false
+ status: SUPPORTED
+ multi_tenant:
+ type: boolean
+ description: true means this network is shared by multiple Openstack tenants
+ required: true
+ default: true
+ status: SUPPORTED
+ min_subnets_count:
+ type: integer
+ description: Quantity of subnets that must be initially assigned
+ required: true
+ status: SUPPORTED
+ ip_network_address_plan:
+ type: string
+ description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network
+ required: true
+ status: SUPPORTED
+ vlan_network_address_plan:
+ type: string
+ description: Reference to VLAN or other address plan ID used to assign subnets to this network
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.network.IPv6SubnetAssignments:
+ derived_from: org.openecomp.datatypes.network.SubnetAssignments
+ properties:
+ use_ipv6:
+ type: boolean
+ description: Indicates IPv6 subnet assignments
+ required: true
+ status: SUPPORTED
+ org.openecomp.datatypes.EcompNaming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_naming:
+ type: boolean
+ 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).
+ required: true
+ default: true
+ status: SUPPORTED
+ naming_policy:
+ type: string
+ description: Referenc to naming policy that OPENECOMP will use when the name is auto-generated
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.Naming:
+ derived_from: org.openecomp.datatypes.Root
+ properties:
+ ecomp_generated_naming:
+ type: boolean
+ 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).
+ required: true
+ default: true
+ status: SUPPORTED
+ org.openecomp.datatypes.EcompGeneratedNaming:
+ derived_from: org.openecomp.datatypes.Naming
+ properties:
+ naming_policy:
+ type: string
+ description: Referenc to naming policy that OPENECOMP will use when the name is auto-generated
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.UserDefinedNaming:
+ derived_from: org.openecomp.datatypes.Naming
+ properties:
+ instance_name:
+ type: string
+ description: Reference to naming policy that OPENECOMP will use when the name is auto-generated
+ required: false
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/groups.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/groups.yml
new file mode 100644
index 0000000000..09a9fb0807
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/groups.yml
@@ -0,0 +1,61 @@
+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:
+ type: boolean
+ description: Whether this module should be deployed before other modules
+ required: true
+ default: false
+ status: SUPPORTED
+ vf_module_label:
+ type: string
+ description: |
+ Alternate textual key used to reference this VF-Module model. Must be unique within the VNF model
+ required: true
+ status: SUPPORTED
+ vf_module_description:
+ type: string
+ description: |
+ Description of the VF-modules contents and purpose (e.g. "Front-End" or "Database Cluster")
+ required: true
+ status: SUPPORTED
+ min_vf_module_instances:
+ type: integer
+ description: The minimum instances of this VF-Module
+ required: true
+ status: SUPPORTED
+ max_vf_module_instances:
+ type: integer
+ description: The maximum instances of this VF-Module
+ required: false
+ status: SUPPORTED
+ initial_count:
+ type: integer
+ 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.
+ required: false
+ status: SUPPORTED
+ vf_module_type:
+ type: string
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - Base
+ - Expansion
+ volume_group:
+ type: boolean
+ 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.
+ required: true
+ default: false
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml
new file mode 100644
index 0000000000..83516a22ba
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml
@@ -0,0 +1,519 @@
+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.VL:
+ derived_from: tosca.nodes.network.Network
+ properties:
+ vendor:
+ type: string
+ required: false
+ status: SUPPORTED
+ vl_name:
+ type: string
+ required: false
+ status: SUPPORTED
+ capabilities:
+ end_point:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.AbstractSubstitute:
+ derived_from: tosca.nodes.Root
+ properties:
+ service_template_filter:
+ type: org.openecomp.datatypes.substitution.SubstitutionFiltering
+ description: Substitution Filter
+ required: true
+ status: SUPPORTED
+ org.openecomp.resource.vl.extVL:
+ derived_from: org.openecomp.resource.vl.nodes.network.VL
+ description: VF Tenant oam protected network
+ properties:
+ network_type:
+ type: string
+ description: OPENECOMP supported network types.
+ required: true
+ status: SUPPORTED
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ required: true
+ status: SUPPORTED
+ 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
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - VF
+ - SERVICE
+ - GLOBAL
+ network_technology:
+ type: string
+ description: OPENECOMP supported network technology
+ required: true
+ status: SUPPORTED
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ required: true
+ status: SUPPORTED
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ required: true
+ status: SUPPORTED
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ required: true
+ status: SUPPORTED
+ provider_network:
+ type: org.openecomp.datatypes.network.ProviderNetwork
+ required: true
+ status: SUPPORTED
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ required: false
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.Compute:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ disk.ephemeral.size:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.DFAbstractSubstitute:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ license_feature_group_ref:
+ type: string
+ description: refrence to license feature group
+ required: true
+ status: SUPPORTED
+ 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:
+ type: string
+ description: high_availablity
+ required: false
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ description: Master image_name volume id
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ description: Master image_name volume id
+ required: true
+ status: SUPPORTED
+ nfc_naming_code:
+ type: string
+ description: nfc code for instance naming
+ required: false
+ status: SUPPORTED
+ vm_type_tag:
+ type: string
+ description: vm type based on naming Convention
+ required: false
+ status: SUPPORTED
+ vfc_naming:
+ type: org.openecomp.datatypes.Naming
+ description: vfc naming
+ required: false
+ default: false
+ status: SUPPORTED
+ min_instances:
+ type: integer
+ description: Minimum number of VFC Instances
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ max_instances:
+ type: integer
+ description: Maximum number of VFC Instances
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 1
+ org.openecomp.resource.vl.ELine:
+ derived_from: org.openecomp.resource.vl.nodes.network.VL
+ 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.VL
+ description: The AT&T internal (VF-level) Virtual Link
+ org.openecomp.resource.cp.nodes.network.CP:
+ derived_from: tosca.nodes.network.Port
+ properties:
+ network_role_tag:
+ type: string
+ description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ required: true
+ status: SUPPORTED
+ mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ description: identifies MAC address assignments to the CP
+ required: false
+ status: SUPPORTED
+ vlan_requirements:
+ type: list
+ description: identifies vlan address assignments to the CP
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ ip_requirements:
+ type: list
+ description: identifies IP requirements to the CP
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ capabilities:
+ network.incoming.packets.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.nodes.DeploymentFlavor:
+ derived_from: tosca.nodes.Root
+ capabilities:
+ deployment_flavor:
+ type: org.openecomp.capabilities.attachment.DeploymentFlavor
+ description: Allowed deployment flavors of an abstract node
+ 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:
+ type: string
+ description: identical to VL network_role
+ required: true
+ status: SUPPORTED
+ order:
+ type: integer
+ description: The order of the CP on the compute instance (e.g. eth2).
+ required: true
+ status: SUPPORTED
+ network_role_tag:
+ type: string
+ description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ required: true
+ status: SUPPORTED
+ mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ description: identifies MAC address assignments to the CP
+ required: false
+ status: SUPPORTED
+ vlan_requirements:
+ type: list
+ description: identifies vlan address assignments to the CP
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ ip_requirements:
+ type: list
+ description: identifies IP requirements to the CP
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ 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.VL
+ relationship: tosca.relationships.network.LinksTo
+ capabilities:
+ internal_connectionPoint:
+ type: tosca.capabilities.Node
+ valid_source_types:
+ - tosca.nodes.network.Port
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.volume:
+ derived_from: tosca.nodes.BlockStorage
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/relationships.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/relationships.yml
new file mode 100644
index 0000000000..310e9847c7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/relationships.yml
@@ -0,0 +1,36 @@
+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:
+ type: string
+ description: The ID of the volume to be attached
+ required: true
+ status: SUPPORTED
+ instance_uuid:
+ type: string
+ description: The ID of the server to which the volume attaches
+ required: true
+ status: SUPPORTED
+ attributes:
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ org.openecomp.relationships.AttachesTo:
+ derived_from: tosca.relationships.AttachesTo
+ description: This type represents an attachment relationship
+ properties:
+ location:
+ type: string
+ description: The relative location (e.g., path on the file system), which provides the root location to address an attached node.
+ required: false
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/_index.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/_index.yml
new file mode 100644
index 0000000000..0c5d7928e1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/_index.yml
@@ -0,0 +1,21 @@
+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
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/artifacts.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/artifacts.yml
new file mode 100644
index 0000000000..0367376ae6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/artifacts.yml
@@ -0,0 +1,31 @@
+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/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/capabilities.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/capabilities.yml
new file mode 100644
index 0000000000..34f78c4ec8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/capabilities.yml
@@ -0,0 +1,232 @@
+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:
+ type: integer
+ description: Number of (actual or virtual) CPUs associated with the Compute node.
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 1
+ cpu_frequency:
+ type: scalar-unit.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".
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0.1 GHz
+ disk_size:
+ type: scalar-unit.size
+ description: Size of the local disk available to applications running on the Compute node (default unit is MB).
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0 MB
+ mem_size:
+ type: scalar-unit.size
+ description: Size of memory available to applications running on the Compute node (default unit is MB).
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ 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.'
+ required: true
+ default: tcp
+ status: SUPPORTED
+ port:
+ type: tosca.datatypes.network.PortDef
+ description: The optional port of the endpoint.
+ required: false
+ status: SUPPORTED
+ secure:
+ type: boolean
+ description: Requests for the endpoint to be secure and use credentials supplied on the ConnectsTo relationship.
+ required: false
+ default: false
+ status: SUPPORTED
+ url_path:
+ type: string
+ description: The optional URL path of the endpoint's address if applicable for the protocol.
+ required: false
+ status: SUPPORTED
+ port_name:
+ type: string
+ description: The optional name (or ID) of the network port this endpoint should be bound to.
+ required: false
+ status: SUPPORTED
+ network_name:
+ type: string
+ description: 'The optional name (or ID) of the network this endpoint should
+ be bound to. network_name: PRIVATE | PUBLIC | <network_name> | <network_id>.'
+ required: false
+ default: PRIVATE
+ status: SUPPORTED
+ initiator:
+ type: string
+ description: The optional indicator of the direction of the connection.
+ required: false
+ default: source
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - source
+ - target
+ - peer
+ ports:
+ type: map
+ description: The optional map of ports the Endpoint supports (if more than one).
+ required: false
+ status: SUPPORTED
+ constraints:
+ - min_length: 1
+ entry_schema:
+ type: tosca.datatypes.network.PortSpec
+ attributes:
+ ip_address:
+ type: string
+ description: 'Note: This is the IP address as propagated up by the associated
+ node''s host (Compute) container.'
+ status: SUPPORTED
+ 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
+ required: true
+ default: PUBLIC
+ status: SUPPORTED
+ 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:
+ type: boolean
+ description: Requests for the endpoint to be secure and use credentials supplied on the ConnectsTo relationship.
+ required: true
+ default: true
+ status: SUPPORTED
+ 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:
+ type: string
+ description: 'The Operating System (OS) architecture. Examples of valid values
+ include: x86_32, x86_64, etc.'
+ required: false
+ status: SUPPORTED
+ type:
+ type: string
+ description: 'The Operating System (OS) type. Examples of valid values include:
+ linux, aix, mac, windows, etc.'
+ required: false
+ status: SUPPORTED
+ distribution:
+ type: string
+ description: 'The Operating System (OS) distribution. Examples of valid values
+ for a "type" of "Linux" would include: debian, fedora, rhel and ubuntu.'
+ required: false
+ status: SUPPORTED
+ version:
+ type: version
+ description: The Operating System version.
+ required: false
+ status: SUPPORTED
+ 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:
+ type: integer
+ 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.
+ required: true
+ default: 1
+ status: SUPPORTED
+ max_instances:
+ type: integer
+ 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.
+ required: true
+ default: 1
+ status: SUPPORTED
+ default_instances:
+ type: integer
+ 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.'
+ required: false
+ status: SUPPORTED
+ 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
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: version
+ publish_all:
+ type: boolean
+ required: false
+ default: false
+ status: SUPPORTED
+ publish_ports:
+ type: list
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: PortSpec
+ expose_ports:
+ type: list
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: PortSpec
+ volumes:
+ type: list
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/data.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/data.yml
new file mode 100644
index 0000000000..88042193f5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/data.yml
@@ -0,0 +1,179 @@
+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:
+ type: string
+ description: The name of the logical network. e.g., "public", "private", "admin". etc.
+ required: false
+ status: SUPPORTED
+ network_id:
+ type: string
+ description: The unique ID of for the network generated by the network provider.
+ required: false
+ status: SUPPORTED
+ addresses:
+ type: list
+ description: The list of IP addresses assigned from the underlying network.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ tosca.datatypes.TimeInterval:
+ derived_from: tosca.datatypes.Root
+ properties:
+ start_time:
+ type: timestamp
+ required: true
+ status: SUPPORTED
+ end_time:
+ type: timestamp
+ required: true
+ status: SUPPORTED
+ 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:
+ type: string
+ description: The required protocol used on the port.
+ required: true
+ default: tcp
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - udp
+ - tcp
+ - igmp
+ source:
+ type: tosca.datatypes.network.PortDef
+ description: The optional source port.
+ required: false
+ status: SUPPORTED
+ source_range:
+ type: range
+ description: The optional range for source port.
+ required: false
+ status: SUPPORTED
+ constraints:
+ - in_range:
+ - 1
+ - 65535
+ target:
+ type: tosca.datatypes.network.PortDef
+ description: The optional target port.
+ required: false
+ status: SUPPORTED
+ target_range:
+ type: range
+ description: The optional range for target port.
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: The logical network port name.
+ required: false
+ status: SUPPORTED
+ port_id:
+ type: string
+ description: The unique ID for the network port generated by the network provider.
+ required: false
+ status: SUPPORTED
+ network_id:
+ type: string
+ description: The unique ID for the network.
+ required: false
+ status: SUPPORTED
+ mac_address:
+ type: string
+ description: The unique media access control address (MAC address) assigned to the port.
+ required: false
+ status: SUPPORTED
+ addresses:
+ type: list
+ description: The list of IP address(es) assigned to the port.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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:
+ type: string
+ description: The optional protocol name.
+ required: false
+ status: SUPPORTED
+ token_type:
+ type: string
+ description: The required token type.
+ required: true
+ default: password
+ status: SUPPORTED
+ token:
+ type: string
+ description: The required token used as a credential for authorization or access to a networked resource.
+ required: true
+ status: SUPPORTED
+ keys:
+ type: map
+ description: The optional list of protocol-specific keys or assertions.
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ user:
+ type: string
+ description: The optional user (name or ID) used for non-token based credentials.
+ required: false
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/groups.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/groups.yml
new file mode 100644
index 0000000000..07a6343c6e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/groups.yml
@@ -0,0 +1,13 @@
+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/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/interfaces.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/interfaces.yml
new file mode 100644
index 0000000000..11d7dbbbd3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/interfaces.yml
@@ -0,0 +1,42 @@
+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.
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/nodes.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/nodes.yml
new file mode 100644
index 0000000000..bb61619217
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/nodes.yml
@@ -0,0 +1,434 @@
+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:
+ type: string
+ description: A unique identifier of the realized instance of a Node Template that derives from any TOSCA normative type.
+ status: SUPPORTED
+ tosca_name:
+ type: string
+ 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.
+ status: SUPPORTED
+ state:
+ type: string
+ description: The state of the node instance.
+ default: initial
+ status: SUPPORTED
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ feature:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - 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:
+ type: string
+ description: The logical name of the object store (or container).
+ required: true
+ status: SUPPORTED
+ size:
+ type: scalar-unit.size
+ description: The requested initial storage size (default unit is in Gigabytes).
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0 GB
+ maxsize:
+ type: scalar-unit.size
+ description: The requested maximum storage size (default unit is in Gigabytes).
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0 GB
+ capabilities:
+ storage_endpoint:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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:
+ type: string
+ description: The optional root password for the DBMS server.
+ required: false
+ status: SUPPORTED
+ port:
+ type: integer
+ description: The DBMS server's port.
+ required: false
+ status: SUPPORTED
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.Database
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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:
+ type: string
+ description: The web application's context root which designates the application's URL path within the web server it is hosted on.
+ required: false
+ status: SUPPORTED
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.WebServer
+ relationship: tosca.relationships.HostedOn
+ capabilities:
+ app_endpoint:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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:
+ type: string
+ description: The primary private IP address assigned by the cloud provider that applications may use to access the Compute node.
+ status: SUPPORTED
+ public_address:
+ type: string
+ description: The primary public IP address assigned by the cloud provider that applications may use to access the Compute node.
+ status: SUPPORTED
+ networks:
+ type: map
+ description: The list of logical networks assigned to the compute host instance and information about them.
+ status: SUPPORTED
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ description: The list of logical ports assigned to the compute host instance and information about them.
+ status: SUPPORTED
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ tosca.nodes.network.Network:
+ derived_from: tosca.nodes.Root
+ description: The TOSCA Network node represents a simple, logical network service.
+ properties:
+ ip_version:
+ type: integer
+ description: The IP version of the requested network.
+ required: false
+ default: 4
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ cidr:
+ type: string
+ description: The cidr block of the requested network.
+ required: false
+ status: SUPPORTED
+ start_ip:
+ type: string
+ description: The IP address to be used as the 1st one in a pool of addresses derived from the cidr block full IP range.
+ required: false
+ status: SUPPORTED
+ end_ip:
+ type: string
+ description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range.
+ required: false
+ status: SUPPORTED
+ gateway_ip:
+ type: string
+ description: The gateway IP address.
+ required: false
+ status: SUPPORTED
+ network_name:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ network_id:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ segmentation_id:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ network_type:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ physical_network:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ dhcp_enabled:
+ type: boolean
+ description: Indicates the TOSCA container to create a virtual network instance with or without a DHCP service.
+ required: false
+ default: true
+ status: SUPPORTED
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
+ occurrences:
+ - 1
+ - UNBOUNDED
+ admin_endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.WebApplication
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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:
+ type: version
+ description: The optional software component's version.
+ required: false
+ status: SUPPORTED
+ admin_credential:
+ type: tosca.datatypes.Credential
+ description: The optional credential that can be used to authenticate to the software component.
+ required: false
+ status: SUPPORTED
+ 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:
+ type: scalar-unit.size
+ description: The requested storage size (default unit is MB).
+ required: true
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 1 MB
+ volume_id:
+ type: string
+ description: ID of an existing volume (that is in the accessible scope of the requesting application).
+ required: false
+ status: SUPPORTED
+ snapshot_id:
+ type: string
+ description: Some identifier that represents an existing snapshot that should be used when creating the block storage (volume).
+ required: false
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ order:
+ type: integer
+ 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).'
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ is_default:
+ type: boolean
+ 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.
+ required: false
+ default: false
+ status: SUPPORTED
+ ip_range_start:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ ip_range_end:
+ type: string
+ 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.
+ required: false
+ status: SUPPORTED
+ attributes:
+ ip_address:
+ type: string
+ description: The IP address would be assigned to the associated compute instance.
+ status: SUPPORTED
+ 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).
+ requirements:
+ - application:
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.RoutesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ client:
+ type: tosca.capabilities.Endpoint.Public
+ description: The Floating (IP) client's on the public network can connect to.
+ 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:
+ type: string
+ description: The logical database Name.
+ required: true
+ status: SUPPORTED
+ port:
+ type: integer
+ description: The port the database service will use to listen for incoming data and requests.
+ required: false
+ status: SUPPORTED
+ user:
+ type: string
+ description: The special user account used for database administration.
+ required: false
+ status: SUPPORTED
+ password:
+ type: string
+ description: The password associated with the user account provided in the 'user' property.
+ required: false
+ status: SUPPORTED
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.DBMS
+ relationship: tosca.relationships.HostedOn
+ capabilities:
+ database_endpoint:
+ type: tosca.capabilities.Endpoint.Database
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/policies.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/policies.yml
new file mode 100644
index 0000000000..2e207560e3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/policies.yml
@@ -0,0 +1,22 @@
+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/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/relationships.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/relationships.yml
new file mode 100644
index 0000000000..07a9bf5bd9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/tosca/relationships.yml
@@ -0,0 +1,90 @@
+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:
+ type: string
+ description: A unique identifier of the realized instance of a Relationship Template that derives from any TOSCA normative type.
+ status: SUPPORTED
+ tosca_name:
+ type: string
+ 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.
+ status: SUPPORTED
+ state:
+ type: string
+ description: The state of the relationship instance.
+ default: initial
+ status: SUPPORTED
+ 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.
+ properties:
+ location:
+ type: string
+ 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".'
+ required: true
+ status: SUPPORTED
+ constraints:
+ - min_length: 1
+ device:
+ type: string
+ description: The logical device name which for the attached device (which is represented by the target node in the model). e.g., '/dev/hda1'.
+ required: false
+ status: SUPPORTED
+ attributes:
+ device:
+ type: string
+ 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.'
+ status: SUPPORTED
+ valid_target_types:
+ - tosca.capabilities.Attachment
+ 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.
+ properties:
+ credential:
+ type: tosca.datatypes.Credential
+ required: false
+ status: SUPPORTED
+ valid_target_types:
+ - tosca.capabilities.Endpoint
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/AbstractSubstituteGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/AbstractSubstituteGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..449f0939ee
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/AbstractSubstituteGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,47 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: AbstractSubstituteGlobalTypes
+ template_version: 1.0.0
+description: Abstract Substitute Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+data_types:
+ org.openecomp.datatypes.heat.substitution.SubstitutionFilter:
+ derived_from: tosca.datatypes.Root
+ description: Substitution Filter
+ properties:
+ substitute_service_template:
+ type: string
+ description: Substitute Service Template
+ required: true
+ status: SUPPORTED
+ index_variable:
+ type: string
+ description: Index variable
+ required: false
+ default: '%index%'
+ status: SUPPORTED
+ constraints:
+ - min_length: 3
+ count:
+ type: string
+ description: Count
+ required: false
+ default: 1
+ status: SUPPORTED
+ mandatory:
+ type: boolean
+ description: Mandatory
+ required: false
+ default: true
+ status: SUPPORTED
+node_types:
+ org.openecomp.resource.abstract.nodes.AbstractSubstitute:
+ derived_from: tosca.nodes.Root
+ properties:
+ service_template_filter:
+ type: org.openecomp.datatypes.heat.substitution.SubstitutionFilter
+ description: Substitution Filter
+ required: true
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CinderVolumeGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CinderVolumeGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..9b0655bf36
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CinderVolumeGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,176 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: CinderVolumeGlobalTypes
+ template_version: 1.0.0
+description: Cinder Volume TOSCA Global Types
+relationship_types:
+ org.openecomp.relationships.VolumeAttachesTo:
+ derived_from: tosca.relationships.AttachesTo
+ description: This type represents an attachment relationship for associating volume
+ properties:
+ volume_id:
+ type: string
+ description: The ID of the volume to be attached
+ required: true
+ status: SUPPORTED
+ location:
+ type: string
+ description: The location where the volume is exposed on the instance, mountpoint
+ required: false
+ status: SUPPORTED
+ instance_uuid:
+ type: string
+ description: The ID of the server to which the volume attaches
+ required: true
+ status: SUPPORTED
+ attributes:
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cinder.Volume:
+ derived_from: tosca.nodes.BlockStorage
+ properties:
+ availability_zone:
+ type: string
+ description: The availability zone in which the volume will be created
+ required: false
+ status: SUPPORTED
+ image:
+ type: string
+ description: If specified, the name or ID of the image to create the volume from
+ required: false
+ status: SUPPORTED
+ metadata:
+ type: map
+ description: Key/value pairs to associate with the volume
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ volume_type:
+ type: string
+ description: If specified, the type of volume to use, mapping to a specific backend
+ required: false
+ status: SUPPORTED
+ description:
+ type: string
+ description: A description of the volume
+ required: false
+ status: SUPPORTED
+ device_type:
+ type: string
+ description: Device type
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - cdrom
+ - disk
+ disk_bus:
+ type: string
+ description: 'Bus of the device: hypervisor driver chooses a suitable default
+ if omitted'
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - ide
+ - lame_bus
+ - scsi
+ - usb
+ - virtio
+ backup_id:
+ type: string
+ description: If specified, the backup to create the volume from
+ required: false
+ status: SUPPORTED
+ source_volid:
+ type: string
+ description: If specified, the volume to use as source
+ required: false
+ status: SUPPORTED
+ boot_index:
+ type: integer
+ description: Integer used for ordering the boot disks
+ required: false
+ status: SUPPORTED
+ size:
+ type: scalar-unit.size
+ description: The requested storage size (default unit is MB)
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 1 GB
+ read_only:
+ type: boolean
+ description: Enables or disables read-only access mode of volume
+ required: false
+ status: SUPPORTED
+ name:
+ type: string
+ description: A name used to distinguish the volume
+ required: false
+ status: SUPPORTED
+ scheduler_hints:
+ type: map
+ description: Arbitrary key-value pairs specified by the client to help the Cinder scheduler creating a volume
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ swap_size:
+ type: scalar-unit.size
+ description: The size of the swap, in MB
+ required: false
+ status: SUPPORTED
+ delete_on_termination:
+ type: boolean
+ description: Indicate whether the volume should be deleted when the server is terminated
+ required: false
+ status: SUPPORTED
+ multiattach:
+ type: boolean
+ description: Whether allow the volume to be attached more than once
+ required: false
+ status: SUPPORTED
+ attributes:
+ display_description:
+ type: string
+ description: Description of the volume
+ status: SUPPORTED
+ attachments:
+ type: string
+ description: The list of attachments of the volume
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ encrypted:
+ type: boolean
+ description: Boolean indicating if the volume is encrypted or not
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ created_at:
+ type: timestamp
+ description: The timestamp indicating volume creation
+ status: SUPPORTED
+ display_name:
+ type: string
+ description: Name of the volume
+ status: SUPPORTED
+ metadata_values:
+ type: map
+ description: Key/value pairs associated with the volume in raw dict form
+ status: SUPPORTED
+ bootable:
+ type: boolean
+ description: Boolean indicating if the volume can be booted or not
+ status: SUPPORTED
+ status:
+ type: string
+ description: The current status of the volume
+ status: SUPPORTED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CommonGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CommonGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..f8b9c0d048
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/CommonGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,213 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: CommonGlobalTypes
+ template_version: 1.0.0
+description: TOSCA Global Types
+imports:
+- NativeTypesServiceTemplate:
+ file: NativeTypesServiceTemplateServiceTemplate.yaml
+data_types:
+ org.openecomp.datatypes.heat.network.AddressPair:
+ derived_from: tosca.datatypes.Root
+ description: MAC/IP address pairs
+ properties:
+ mac_address:
+ type: string
+ description: MAC address
+ required: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IP address
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.network.subnet.HostRoute:
+ derived_from: tosca.datatypes.Root
+ description: Host route info for the subnet
+ properties:
+ destination:
+ type: string
+ description: The destination for static route
+ required: false
+ status: SUPPORTED
+ nexthop:
+ type: string
+ description: The next hop for the destination
+ required: false
+ status: SUPPORTED
+ 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:
+ type: string
+ description: The ID of the tenant who owns the network
+ required: false
+ status: SUPPORTED
+ enable_dhcp:
+ type: boolean
+ description: Set to true if DHCP is enabled and false if DHCP is disabled
+ required: false
+ default: true
+ status: SUPPORTED
+ ipv6_address_mode:
+ type: string
+ description: IPv6 address mode
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ ipv6_ra_mode:
+ type: string
+ description: IPv6 RA (Router Advertisement) mode
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - dhcpv6-stateful
+ - dhcpv6-stateless
+ - slaac
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ allocation_pools:
+ type: list
+ description: The start and end addresses for the allocation pools
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AllocationPool
+ subnetpool:
+ type: string
+ description: The name or ID of the subnet pool
+ required: false
+ status: SUPPORTED
+ dns_nameservers:
+ type: list
+ description: A specified set of DNS name servers to be used
+ required: false
+ default: [
+ ]
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ host_routes:
+ type: list
+ description: The gateway IP address
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.subnet.HostRoute
+ ip_version:
+ type: integer
+ description: The gateway IP address
+ required: false
+ default: 4
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - '4'
+ - '6'
+ name:
+ type: string
+ description: The name of the subnet
+ required: false
+ status: SUPPORTED
+ prefixlen:
+ type: integer
+ description: Prefix length for subnet allocation from subnet pool
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ cidr:
+ type: string
+ description: The CIDR
+ required: false
+ status: SUPPORTED
+ gateway_ip:
+ type: string
+ description: The gateway IP address
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.network.AllocationPool:
+ derived_from: tosca.datatypes.Root
+ description: The start and end addresses for the allocation pool
+ properties:
+ start:
+ type: string
+ description: Start address for the allocation pool
+ required: false
+ status: SUPPORTED
+ end:
+ type: string
+ description: End address for the allocation pool
+ required: false
+ status: SUPPORTED
+relationship_types:
+ org.openecomp.relationships.AttachesTo:
+ derived_from: tosca.relationships.Root
+ description: This type represents an attachment relationship
+group_types:
+ org.openecomp.groups.heat.HeatStack:
+ derived_from: tosca.groups.Root
+ description: Grouped all heat resources which are in the same heat stack
+ properties:
+ heat_file:
+ type: string
+ description: Heat file which associate to this group/heat stack
+ required: true
+ status: SUPPORTED
+ description:
+ type: string
+ description: Heat file description
+ required: false
+ status: SUPPORTED
+policy_types:
+ org.openecomp.policies.placement.Colocate:
+ derived_from: tosca.policy.placement
+ description: Keep associated nodes (groups of nodes) based upon affinity value
+ properties:
+ name:
+ type: string
+ description: The name of the policy
+ required: false
+ status: SUPPORTED
+ affinity:
+ type: string
+ description: affinity
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - host
+ - region
+ - compute
+ org.openecomp.policies.placement.Antilocate:
+ derived_from: tosca.policy.placement
+ description: My placement policy for separation based upon container type value
+ properties:
+ name:
+ type: string
+ description: The name of the policy
+ required: false
+ status: SUPPORTED
+ container_type:
+ type: string
+ description: container type
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - host
+ - region
+ - compute
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailNetworkRuleGlobalTypeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
new file mode 100644
index 0000000000..044d759bc0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
@@ -0,0 +1,117 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: ContrailNetworkRuleGlobalType
+ template_version: 1.0.0
+description: Contrail Network Rule Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+data_types:
+ org.openecomp.datatypes.heat.contrail.network.rule.PortPairs:
+ derived_from: tosca.datatypes.Root
+ description: source and destination port pairs
+ properties:
+ start_port:
+ type: string
+ description: Start port
+ required: false
+ status: SUPPORTED
+ end_port:
+ type: string
+ description: End port
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrail.network.rule.Rule:
+ derived_from: tosca.datatypes.Root
+ description: policy rule
+ properties:
+ src_ports:
+ type: list
+ description: Source ports
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ protocol:
+ type: string
+ description: Protocol
+ required: false
+ status: SUPPORTED
+ dst_addresses:
+ type: list
+ description: Destination addresses
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ apply_service:
+ type: string
+ description: Service to apply
+ required: false
+ status: SUPPORTED
+ dst_ports:
+ type: list
+ description: Destination ports
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs
+ src_addresses:
+ type: list
+ description: Source addresses
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork
+ direction:
+ type: string
+ description: Direction
+ required: false
+ status: SUPPORTED
+ org.openecomp.datatypes.heat.contrail.network.rule.RuleList:
+ derived_from: tosca.datatypes.Root
+ description: list of policy rules
+ properties:
+ policy_rule:
+ type: list
+ description: Contrail network rule
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.Rule
+ org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork:
+ derived_from: tosca.datatypes.Root
+ description: source and destination addresses
+ properties:
+ virtual_network:
+ type: string
+ description: Virtual network
+ required: false
+ status: SUPPORTED
+node_types:
+ org.openecomp.resource.nodes.heat.network.contrail.NetworkRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ entries:
+ type: org.openecomp.datatypes.heat.contrail.network.rule.RuleList
+ description: A symbolic name for this contrail network rule
+ required: false
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this contrail network rule
+ required: false
+ status: SUPPORTED
+ attributes:
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+ requirements:
+ - network:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.network.Network
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
new file mode 100644
index 0000000000..cbbb979029
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
@@ -0,0 +1,71 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: ContrailVirtualNetworkGlobalType
+ template_version: 1.0.0
+description: Contrail Virtual Network Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork:
+ derived_from: tosca.nodes.network.Network
+ properties:
+ shared:
+ type: string
+ description: Is virtual network shared
+ required: false
+ status: SUPPORTED
+ forwarding_mode:
+ type: string
+ description: forwarding mode of the virtual network
+ required: false
+ status: SUPPORTED
+ external:
+ type: string
+ description: Is virtual network external
+ required: false
+ status: SUPPORTED
+ flood_unknown_unicast:
+ type: string
+ description: flood L2 packets on network
+ required: false
+ status: SUPPORTED
+ route_targets:
+ type: list
+ description: route targets associated with the virtual network
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ attributes:
+ subnets_name:
+ type: list
+ description: Subnets name of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets_show:
+ type: map
+ description: Detailed information about each subnet
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..1ce3fc54ff
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,93 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+- NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+- NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+- CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+- CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+- ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+- NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+- NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+- ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+- AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: String
+ p1:
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ security_group_name:
+ description: not impotrtant
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ requirements:
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NativeTypesServiceTemplateServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NativeTypesServiceTemplateServiceTemplate.yaml
new file mode 100644
index 0000000000..e7dfd49ed9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NativeTypesServiceTemplateServiceTemplate.yaml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: NativeTypesServiceTemplate
+ template_version: 1.0.0
+description: TOSCA Native Node Types
+node_types:
+ tosca.nodes.Compute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ description: private address
+ status: SUPPORTED
+ public_address:
+ type: string
+ description: public_address
+ status: SUPPORTED
+ networks:
+ type: map
+ description: networks
+ status: SUPPORTED
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ description: ports
+ status: SUPPORTED
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ scalable:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ tosca.nodes.network.Port:
+ derived_from: tosca.nodes.Root
+ properties:
+ ip_range_end:
+ type: string
+ required: false
+ status: SUPPORTED
+ ip_range_start:
+ type: string
+ required: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ required: false
+ status: SUPPORTED
+ is_default:
+ type: boolean
+ required: false
+ default: false
+ status: SUPPORTED
+ order:
+ type: integer
+ required: true
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.BindsTo
+ tosca.nodes.Root:
+ attributes:
+ tosca_name:
+ type: string
+ description: tosca name
+ status: SUPPORTED
+ state:
+ type: string
+ description: state
+ status: SUPPORTED
+ tosca_id:
+ type: string
+ description: tosca id
+ status: SUPPORTED
+ interfaces: {
+ }
+ tosca.nodes.network.Network:
+ derived_from: tosca.nodes.Root
+ properties:
+ physical_network:
+ type: string
+ required: false
+ status: SUPPORTED
+ segmentation_id:
+ type: string
+ required: false
+ status: SUPPORTED
+ network_id:
+ type: string
+ required: false
+ status: SUPPORTED
+ ip_version:
+ type: integer
+ required: false
+ default: 4
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - 4
+ - 6
+ start_ip:
+ type: string
+ required: false
+ status: SUPPORTED
+ network_name:
+ type: string
+ required: false
+ status: SUPPORTED
+ cidr:
+ type: string
+ required: false
+ status: SUPPORTED
+ gateway_ip:
+ type: string
+ required: false
+ status: SUPPORTED
+ network_type:
+ type: string
+ required: false
+ status: SUPPORTED
+ end_ip:
+ type: string
+ required: false
+ status: SUPPORTED
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ tosca.nodes.BlockStorage:
+ derived_from: tosca.nodes.Root
+ properties:
+ size:
+ type: scalar-unit.size
+ required: false
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 1 MB
+ volume_id:
+ type: string
+ required: false
+ status: SUPPORTED
+ snapshot_id:
+ type: string
+ required: false
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronNetGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronNetGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..494b44c126
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronNetGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,97 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: NeutronNetGlobalTypes
+ template_version: 1.0.0
+description: Neutron Network TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vl.nodes.heat.network.neutron.Net:
+ derived_from: tosca.nodes.network.Network
+ properties:
+ dhcp_agent_ids:
+ type: list
+ description: The IDs of the DHCP agent to schedule the network
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ tenant_id:
+ type: string
+ description: The ID of the tenant which will own the network
+ required: false
+ status: SUPPORTED
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the network
+ required: false
+ status: SUPPORTED
+ shared:
+ type: boolean
+ description: Whether this network should be shared across all tenants
+ required: false
+ default: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: A boolean value specifying the administrative status of the network
+ required: false
+ default: true
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this network
+ required: false
+ status: SUPPORTED
+ subnets:
+ type: map
+ description: Network related subnets
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ qos_policy_id:
+ type: string
+ description: The QoS policy ID attached to this network
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ subnets_name:
+ type: list
+ description: Subnets name of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ subnets:
+ type: map
+ description: Network related subnets
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.Subnet
+ mtu:
+ type: scalar-unit.size
+ description: The maximum transmission unit size(in bytes) for the network
+ status: SUPPORTED
+ status:
+ type: string
+ description: The status of the network
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronPortGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronPortGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..a561d79b8f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronPortGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,151 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: NeutronPortGlobalTypes
+ template_version: 1.0.0
+description: Neutron Port TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+data_types:
+ org.openecomp.datatypes.heat.neutron.port.FixedIps:
+ derived_from: tosca.datatypes.Root
+ description: subnet/ip_address
+ properties:
+ subnet:
+ type: string
+ description: Subnet in which to allocate the IP address for this port
+ required: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IP address desired in the subnet for this port
+ required: false
+ status: SUPPORTED
+node_types:
+ org.openecomp.resource.cp.nodes.heat.network.neutron.Port:
+ derived_from: tosca.nodes.network.Port
+ properties:
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the network
+ required: false
+ status: SUPPORTED
+ device_id:
+ type: string
+ description: Device ID of this port
+ required: false
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this network
+ required: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ binding:vnic_type:
+ type: string
+ description: The vnic type to be bound on the neutron port
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ device_owner:
+ type: string
+ description: Name of the network owning the port
+ required: false
+ status: SUPPORTED
+ network:
+ type: string
+ description: Network this port belongs to
+ required: false
+ status: SUPPORTED
+ replacement_policy:
+ type: string
+ description: Policy on how to respond to a stack-update for this resource
+ required: false
+ default: AUTO
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REPLACE_ALWAYS
+ - AUTO
+ security_groups:
+ type: list
+ description: List of security group names or IDs
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ fixed_ips:
+ type: list
+ description: Desired IPs for this port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ mac_address:
+ type: string
+ description: MAC address to give to this port
+ required: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: A boolean value specifying the administrative status of the network
+ required: false
+ default: true
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this port
+ required: false
+ status: SUPPORTED
+ attributes:
+ tenant_id:
+ type: string
+ description: Tenant owning the port
+ status: SUPPORTED
+ network_id:
+ type: string
+ description: Unique identifier for the network owning the port
+ status: SUPPORTED
+ qos_policy_id:
+ type: string
+ description: The QoS policy ID attached to this network
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ subnets:
+ type: list
+ description: Subnets of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ status:
+ type: string
+ description: The status of the network
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronSecurityRulesGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..83fc31520a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,116 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: NeutronSecurityRulesGlobalTypes
+ template_version: 1.0.0
+description: Neutron Security Rules TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+data_types:
+ org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule:
+ derived_from: tosca.datatypes.Root
+ description: Rules Pairs
+ properties:
+ remote_group_id:
+ type: string
+ description: The remote group ID to be associated with this security group rule
+ required: false
+ status: SUPPORTED
+ protocol:
+ type: string
+ description: The protocol that is matched by the security group rule
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - tcp
+ - udp
+ - icmp
+ ethertype:
+ type: string
+ description: Ethertype of the traffic
+ required: false
+ default: IPv4
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - IPv4
+ - IPv6
+ port_range_max:
+ type: integer
+ description: 'The maximum port number in the range that is matched by the
+ security group rule. '
+ required: false
+ status: SUPPORTED
+ constraints:
+ - in_range:
+ - 0
+ - 65535
+ remote_ip_prefix:
+ type: string
+ description: The remote IP prefix (CIDR) to be associated with this security group rule
+ required: false
+ status: SUPPORTED
+ remote_mode:
+ type: string
+ description: Whether to specify a remote group or a remote IP prefix
+ required: false
+ default: remote_ip_prefix
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - remote_ip_prefix
+ - remote_group_id
+ direction:
+ type: string
+ description: The direction in which the security group rule is applied
+ required: false
+ default: ingress
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - egress
+ - ingress
+ port_range_min:
+ type: integer
+ description: The minimum port number in the range that is matched by the security group rule.
+ required: false
+ status: SUPPORTED
+ constraints:
+ - in_range:
+ - 0
+ - 65535
+node_types:
+ org.openecomp.resource.nodes.heat.network.neutron.SecurityRules:
+ derived_from: tosca.nodes.Root
+ properties:
+ description:
+ type: string
+ description: Description of the security group
+ required: false
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this security group, which is not required to be unique.
+ required: false
+ status: SUPPORTED
+ rules:
+ type: list
+ description: List of security group rules
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule
+ attributes:
+ show:
+ type: string
+ description: Detailed information about resource
+ 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 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NovaServerGlobalTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NovaServerGlobalTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..d77e378a79
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates_1610/NovaServerGlobalTypesServiceTemplate.yaml
@@ -0,0 +1,249 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: NovaServerGlobalTypes
+ template_version: 1.0.0
+description: Nova Server TOSCA Global Types
+imports:
+- common_definitions:
+ file: CommonGlobalTypesServiceTemplate.yaml
+data_types:
+ org.openecomp.datatypes.heat.novaServer.network.PortExtraProperties:
+ derived_from: tosca.datatypes.Root
+ description: Nova server network expand properties for port
+ properties:
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the port
+ required: false
+ status: SUPPORTED
+ mac_address:
+ type: string
+ description: MAC address to give to this port
+ required: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: The administrative state of this port
+ required: false
+ default: true
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this port
+ required: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ binding:vnic_type:
+ type: string
+ description: The vnic type to be bound on the neutron port
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ org.openecomp.datatypes.heat.novaServer.network.AddressInfo:
+ derived_from: tosca.datatypes.network.NetworkInfo
+ description: Network addresses with corresponding port id
+ properties:
+ port_id:
+ type: string
+ description: Port id
+ required: false
+ status: SUPPORTED
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.nova.Server:
+ derived_from: tosca.nodes.Compute
+ properties:
+ admin_pass:
+ type: string
+ description: The administrator password for the server
+ required: false
+ status: SUPPORTED
+ availability_zone:
+ type: string
+ description: Availability zone to create servers in
+ required: false
+ status: SUPPORTED
+ image:
+ type: string
+ description: The ID or name of the image to boot with
+ required: false
+ status: SUPPORTED
+ image_update_policy:
+ type: string
+ description: Policy on how to apply an image-id update
+ required: false
+ default: REBUILD
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REBUILD_PRESERVE_EPHEMERAL
+ - REPLACE
+ - REBUILD
+ metadata:
+ type: map
+ description: Arbitrary key/value metadata to store for this server
+ required: false
+ status: SUPPORTED
+ constraints:
+ - max_length: 255
+ entry_schema:
+ type: string
+ constraints:
+ - max_length: 255
+ user_data_update_policy:
+ type: string
+ description: Policy on how to apply a user_data update
+ required: false
+ default: REPLACE
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REPLACE
+ - IGNORE
+ flavor_update_policy:
+ type: string
+ description: Policy on how to apply a flavor update
+ required: false
+ default: RESIZE
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - RESIZE
+ - REPLACE
+ user_data:
+ type: string
+ description: User data script to be executed by cloud-init
+ required: false
+ default: ''
+ status: SUPPORTED
+ flavor:
+ type: string
+ description: The ID or name of the flavor to boot onto
+ required: true
+ status: SUPPORTED
+ key_name:
+ type: string
+ description: Name of keypair to inject into the server
+ required: false
+ status: SUPPORTED
+ reservation_id:
+ type: string
+ description: A UUID for the set of servers being requested
+ required: false
+ status: SUPPORTED
+ security_groups:
+ type: list
+ description: List of security group names or IDs
+ required: false
+ default: [
+ ]
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ config_drive:
+ type: boolean
+ description: enable config drive on the server
+ required: false
+ status: SUPPORTED
+ personality:
+ type: map
+ description: A map of files to create/overwrite on the server upon boot
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ software_config_transport:
+ type: string
+ description: How the server should receive the metadata required for software configuration
+ required: false
+ default: POLL_SERVER_CFN
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - POLL_SERVER_CFN
+ - POLL_SERVER_HEAT
+ - POLL_TEMP_URL
+ - ZAQAR_MESSAGE
+ user_data_format:
+ type: string
+ description: How the user_data should be formatted for the server
+ required: false
+ default: HEAT_CFNTOOLS
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - SOFTWARE_CONFIG
+ - RAW
+ - HEAT_CFNTOOLS
+ diskConfig:
+ type: string
+ description: Control how the disk is partitioned when the server is created
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - AUTO
+ - MANUAL
+ name:
+ type: string
+ description: Server name
+ required: false
+ status: SUPPORTED
+ scheduler_hints:
+ type: map
+ description: Arbitrary key-value pairs specified by the client to help boot a server
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ accessIPv4:
+ type: string
+ description: The manually assigned alternative public IPv4 address of the server
+ status: SUPPORTED
+ addresses:
+ type: map
+ description: A dict of all network addresses with corresponding port_id
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+ accessIPv6:
+ type: string
+ description: The manually assigned alternative public IPv6 address of the server
+ status: SUPPORTED
+ instance_name:
+ type: string
+ description: AWS compatible instance name
+ status: SUPPORTED
+ name:
+ type: string
+ description: Name of the server
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ console_urls:
+ type: string
+ description: URLs of servers consoles
+ status: SUPPORTED \ No newline at end of file