aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java16
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java37
-rw-r--r--catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.json20
-rw-r--r--catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.yml38
-rw-r--r--catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.zipbin0 -> 608 bytes
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py2
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py6
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java29
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml6
-rw-r--r--docs/configuration.rst1178
-rw-r--r--docs/consumedapis.rst3
-rw-r--r--docs/logging.rst10
-rw-r--r--docs/offeredapis.rst2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java18
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/DuplicateResourceIdsInDifferentFilesErrorBuilder.java16
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/TranslatorErrorCodes.java1
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java19
-rw-r--r--pom.xml4
-rw-r--r--sdc-os-chef/pom.xml9
-rwxr-xr-xsdc-os-chef/scripts/docker_run.sh14
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_4_jetty_Modules.rb (renamed from sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_5_jetty_Modules.rb)0
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_5_setup_elasticsearch.rb (renamed from sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_6_setup_elasticsearch.rb)0
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_6_setup_portal_properties.rb (renamed from sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_7_setup_portal_properties.rb)0
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_7_logback.rb (renamed from sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_8_logback.rb)0
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_8_errors_config.rb (renamed from sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_9_errors_config.rb)0
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_Number_create_DMaaP_keys.rb-NotUsed (renamed from sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_4_create_DMaaP_keys.rb)0
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_Number_import_Normatives.rb (renamed from sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_10_import_Normatives.rb)0
-rw-r--r--sdc-os-chef/sdc-backend/chef-solo/roles/catalog-be.json10
-rw-r--r--sdc-os-chef/sdc-backend/startup.sh4
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vHSS.csarbin0 -> 3100 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vMME.csarbin0 -> 2563 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vPCRF_aligned_fixed.csarbin0 -> 3836 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vSPGW.csarbin0 -> 3664 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ZteEpcSpgwVf-csar.csarbin0 -> 2804 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/cscf_si_fixed.csarbin0 -> 50982 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ntas.csarbin0 -> 61134 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/resource-ZteEpcMmeVf-csar_fix.csarbin0 -> 4790 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csarbin6511 -> 4290 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_v3.0.csarbin0 -> 44851 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vSBC_aligned.csarbin0 -> 3771 bytes
-rw-r--r--sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/sanityTests_3_sanity_execution.rb2
-rw-r--r--sdc-os-chef/sdc-sanity/startup.sh2
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentBaseTest.java6
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java40
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java137
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java9
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java17
-rw-r--r--test-apis-ci/src/main/resources/ci/testSuites/onap.xml2
50 files changed, 1552 insertions, 119 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
index 6e971f215d..b9956063d6 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
@@ -243,8 +243,13 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID, instanceIdHeader);
additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL, requestURI);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE, componentType.getValue());
additionalParam.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, uuid);
+ if (componentType == null) {
+ log.debug("getMetaData: assetType parameter {} is not valid", assetType);
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
+ return buildErrorResponse(responseFormat);
+ }
+ additionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE, componentType.getValue());
// Mandatory
if (instanceIdHeader == null || instanceIdHeader.isEmpty()) {
@@ -331,8 +336,15 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
EnumMap<AuditingFieldsKeysEnum, Object> additionalParam = new EnumMap<AuditingFieldsKeysEnum, Object>(AuditingFieldsKeysEnum.class);
additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID, instanceIdHeader);
additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL, url);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE, componentType.getValue());
additionalParam.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, uuid);
+
+ if (componentType == null) {
+ log.debug("getToscaModel: assetType parameter {} is not valid", assetType);
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
+ return buildErrorResponse(responseFormat);
+ }
+ additionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE, componentType.getValue());
+
if (instanceIdHeader == null || instanceIdHeader.isEmpty()) {
log.debug("getToscaModel: Missing X-ECOMP-InstanceID header");
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
index 68adbd5ae3..22f6730eb1 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
@@ -20,11 +20,11 @@
package org.openecomp.sdc.be.tosca;
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParser;
-import com.google.gson.stream.JsonReader;
-import fj.data.Either;
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.apache.commons.lang3.StringUtils;
import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
import org.openecomp.sdc.be.model.Component;
@@ -41,10 +41,12 @@ import org.openecomp.sdc.be.tosca.model.ToscaProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParser;
+import com.google.gson.stream.JsonReader;
+
+import fj.data.Either;
public class PropertyConvertor {
private static PropertyConvertor instance;
@@ -72,12 +74,8 @@ public class PropertyConvertor {
// take only the properties of this resource
props.stream().filter(p -> p.getOwnerId() == null || p.getOwnerId().equals(component.getUniqueId())).forEach(property -> {
- ToscaProperty prop = convertProperty(dataTypes, property, false);
-
- if (prop != null) {
- properties.put(property.getName(), prop);
- }
- });
+ properties.put(property.getName(), convertProperty(dataTypes, property, false));
+ });
if (!properties.isEmpty()) {
toscaNodeType.setProperties(properties);
}
@@ -99,10 +97,9 @@ public class PropertyConvertor {
prop.setEntry_schema(eschema);
}
log.trace("try to convert property {} from type {} with default value [{}]", property.getName(), property.getType(), property.getDefaultValue());
- prop.setDefaultp(convertToToscaObject(property.getType(), property.getDefaultValue(), innerType, dataTypes));
-
- if (prop.getDefaultp() == null) {
- return null;
+ Object convertedObj = convertToToscaObject(property.getType(), property.getDefaultValue(), innerType, dataTypes);
+ if (convertedObj != null) {
+ prop.setDefaultp(convertedObj);
}
prop.setType(property.getType());
prop.setDescription(property.getDescription());
@@ -111,6 +108,7 @@ public class PropertyConvertor {
prop.setRequired(property.isRequired());
}
return prop;
+
}
public Object convertToToscaObject(String propertyType, String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
@@ -120,7 +118,6 @@ public class PropertyConvertor {
if(StringUtils.isEmpty(value)){
return null;
}
-
}
try {
ToscaMapValueConverter mapConverterInst = ToscaMapValueConverter.getInstance();
diff --git a/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.json b/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.json
new file mode 100644
index 0000000000..143f62346d
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.json
@@ -0,0 +1,20 @@
+{
+ "payloadName": "allottedResource.yml",
+ "contactId": "jh0003",
+ "name": "AllottedResource",
+ "description": "Allotted Resource base type all other allotted resources node types derive from",
+ "resourceIconPath": "defaulticon",
+ "categories": [
+ {
+ "name": "Allotted Resource",
+ "subcategories": [
+ {
+ "name": "Allotted Resource"
+ }
+ ]
+ }
+],
+ "tags": [
+ "AllottedResource"
+ ]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.yml b/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.yml
new file mode 100644
index 0000000000..00d3bd243d
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.yml
@@ -0,0 +1,38 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vfc.AllottedResource:
+ derived_from: tosca.nodes.Root
+ description: ECOMP Allotted Resource base type all other allotted resources node types derive from
+ properties:
+ providing_service_uuid:
+ type: string
+ required: true
+ description: The depending service uuid in order to map the allotted resource to the specific service version
+ providing_service_invariant_uuid:
+ type: string
+ required: true
+ description: The depending service invariant uuid in order to map the allotted resource to the specific service version
+ providing_service_name:
+ type: string
+ required: true
+ description: The depending service name in order to map the allotted resource to the specific service version
+ role:
+ type: string
+ required: true
+ description: Unique label that defines the role that this allotted resource performs
+ min_instances:
+ type: integer
+ default: 1
+ max_instances:
+ type: integer
+ default: 1
+ target_network_role:
+ type: string
+ required: true
+ description: Target network role
+ requirements:
+ - service_dependency:
+ capability: org.openecomp.capabilities.AllottedResource
+ relationship: tosca.relationships.DependsOn
+ node: tosca.services.Root
+
diff --git a/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.zip b/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.zip
new file mode 100644
index 0000000000..fd3f7e9d79
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/normative-types/allottedResource/allottedResource.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
index d47c0b8073..1f523858b6 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
@@ -84,7 +84,7 @@ def usage():
def importNormativeTypes(beHost, bePort, adminUser, fileDir, updateversion):
- normativeTypes = [ "root", "compute", "softwareComponent", "webServer", "webApplication", "DBMS", "database", "objectStorage", "blockStorage", "containerRuntime", "containerApplication", "loadBalancer", "port", "network"]
+ normativeTypes = [ "root", "compute", "softwareComponent", "webServer", "webApplication", "DBMS", "database", "objectStorage", "blockStorage", "containerRuntime", "containerApplication", "loadBalancer", "port", "network", "allottedResource"]
#normativeTypes = [ "root" ]
responseCodes = [200, 201]
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
index 664c5cc64a..18d2270442 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
@@ -26,12 +26,12 @@ def importOnapTypes(beHost, bePort, adminUser, fileDir, updateversion):
"extZteCP",
"extZteVDU",
"extZteVL",
+ "NSD",
+ "VDU",
"vduCompute",
"vduCpd",
"vduVirtualStorage",
- "vnfVirtualLinkDesc",
- "NSD",
- "VDU"
+ "vnfVirtualLinkDesc"
]
responseCodes = [200, 201]
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java
index a987e0243b..c77c0f10f3 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java
@@ -7,6 +7,7 @@ import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -37,7 +38,9 @@ public class PropertyConvertorTest {
@Test
public void convertPropertyWhenValueAndDefaultNull() {
- assertNull(PropertyConvertor.getInstance().convertProperty(dataTypes, property, false));
+ ToscaProperty prop = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false);
+ assertNotNull(prop);
+ assertNull(prop.getDefaultp());
}
@Test
@@ -63,7 +66,15 @@ public class PropertyConvertorTest {
resource.setProperties(properties);
Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
assertTrue(result.isLeft());
- assertEquals(1, result.left().value().getProperties().size());
+ assertEquals(2, result.left().value().getProperties().size());
+ int cnt = 0;
+ for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
+ ToscaProperty prop = it.next();
+ if (prop.getDefaultp() == null) {
+ cnt++;
+ }
+ }
+ assertEquals(1, cnt);
}
@Test
@@ -82,6 +93,10 @@ public class PropertyConvertorTest {
Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
assertTrue(result.isLeft());
assertEquals(2, result.left().value().getProperties().size());
+ for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
+ ToscaProperty prop = it.next();
+ assertNotNull(prop.getDefaultp());
+ }
}
@Test
@@ -97,6 +112,10 @@ public class PropertyConvertorTest {
resource.setProperties(properties);
Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
assertTrue(result.isLeft());
- assertNull(result.left().value().getProperties());
- }
-} \ No newline at end of file
+ assertEquals(2, result.left().value().getProperties().size());
+ for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
+ ToscaProperty prop = it.next();
+ assertNull(prop.getDefaultp());
+ }
+ }
+}
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml
index f320a9879b..c9dda19d5c 100644
--- a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp-heat/data.yml
@@ -562,6 +562,12 @@ data_types:
type: string
status: SUPPORTED
required: false
+ subnet_id:
+ type: string
+ description: Subnet in which to allocate the IP address for this port
+ required: false
+ status: SUPPORTED
+
org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties:
derived_from: tosca.datatypes.Root
diff --git a/docs/configuration.rst b/docs/configuration.rst
index 085f9c667d..281f07d1a0 100644
--- a/docs/configuration.rst
+++ b/docs/configuration.rst
@@ -1,27 +1,1179 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
+=============
Configuration
=============
-.. note::
- * This section is used to describe the options a software component offers for configuration.
+.. contents::
+ :depth: 3
+..
+
+Global Configuration
+====================
+
+environment.json
+----------------
+
+::
+
+ {
+ # Environment name
+ "name": "xxx",
+
+ # Environment description
+ "description": "OpenSource-xxx",
+
+ # Chef properties
+ "cookbook_versions": {
+ "Deploy-SDandC": "= 1.0.0"
+ },
+ "json_class": "Chef::Environment",
+ "chef_type": "environment",
+
+ "default_attributes": {
+
+ # IPs used for docker configuration
+ "CS_VIP": "yyy",
+ "BE_VIP": "yyy",
+ "FE_VIP": "yyy",
+ "ES_VIP": "yyy",
+ "interfaces": {
+ "application": "eth0",
+ "private": "eth1"
+ },
+
+ # Configuration parameters used in portal properties
+ "ECompP": {
+ "ecomp_rest_url": "http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi",
+ "ueb_url_list": "10.0.11.1,10.0.11.1",
+ "app_secret": "XftIATw9Jr3VzAcPqt3NnJOu",
+ "app_key": "x9UfO7JsDn8BESVX",
+ "inbox_name": "ECOMP-PORTAL-INBOX",
+ "ecomp_redirect_url": "http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/login.htm",
+ "app_topic_name": "ECOMP-PORTAL-OUTBOX-SDC1",
+ "decryption_key": "AGLDdG4D04BKm2IxIWEr8o=="
+ },
+
+ # Configuration parameters used by SDC to work with Dmaap
+ "UEB": {
+ "PublicKey": "iPIxkpAMI8qTcQj8",
+ "SecretKey": "Ehq3WyT4bkif4zwgEbvshGal",
+ "fqdn": ["10.0.11.1", "10.0.11.1"]
+ },
+
+ # IPs used for docker configuration
+ "Nodes": {
+ "CS": "yyy",
+ "BE": "yyy",
+ "FE": "yyy",
+ "ES": "yyy"
+ }
+ },
+ "override_attributes": {
+
+ # FE and BE listening ports
+ "FE": {
+ "http_port": "8181",
+ "https_port": "9443"
+ },
+ "BE": {
+ "http_port": "8080",
+ "https_port": "8443"
+ },
+
+ # Elasticsearch configuration
+ "elasticsearch": {
+ "cluster_name": "SDC-ES-",
+ "ES_path_home": "/usr/share/elasticsearch",
+ "ES_path_data": "/usr/share/elasticsearch/data",
+ "num_of_replicas": "0",
+ "num_of_shards": "1"
+ },
+
+ # Cassandra configuration
+ "cassandra": {
+ "concurrent_reads": "32",
+ "num_tokens": "256",
+ "data_dir": "/var/lib/cassandra/data",
+ "hinted_handoff_enabled": "true",
+ "cassandra_user": "asdc_user",
+ "cassandra_password": "Aa1234%^!",
+ "concurrent_writes": "32",
+ "cluster_name": "SDC-CS-",
+ "multithreaded_compaction": "false",
+ "cache_dir": "/var/lib/cassandra/saved_caches",
+ "log_file": "/var/lib/cassandra/log/system.log",
+ "phi_convict_threshold": "8",
+ "commitlog_dir": "/var/lib/cassandra/commitlog"
+ }
+ }
+ }
+
+Backend Configurations
+======================
+
+BE-configuration.yaml
+---------------------
+
+::
+
+ # Request headers for identification of the user that made the request
+ identificationHeaderFields:
+ - HTTP_IV_USER
+ - HTTP_CSP_FIRSTNAME
+ - HTTP_CSP_LASTNAME
+ - HTTP_IV_REMOTE_ADDRESS
+ - HTTP_CSP_WSTYPE
+
+ # Catalog backend hostname
+ beFqdn: <%= @host_ip %>
+
+ # Catalog backend http port
+ beHttpPort: <%= @catalog_port %>
+
+ # Catalog backend http context
+ beContext: /sdc/rest/config/get
+
+ # Catalog backend protocol
+ beProtocol: http
+
+ # Catalog backend ssl port
+ beSslPort: <%= @ssl_port %>
+
+ # Catalog backend configuration vesrion
+ version: 1.0
+
+ # Catalog backend configuration release date
+ released: 2012-11-30
+
+ # Catalog tosca current conformance version
+ toscaConformanceLevel: 4.0
+
+ # Catalog minimum tosca conformance version
+ minToscaConformanceLevel: 3.0
+
+ # Titan configuration file location
+ titanCfgFile: /var/lib/jetty/config/catalog-be/titan.properties
+
+ # Does titan holds the persistency data in memory
+ titanInMemoryGraph: false
+
+ # The timeout for titan to lock on an object in a transaction
+ titanLockTimeout: 1800
+
+ # The interval to try and reconnect to titan DB when it is down during SDC startup
+ titanReconnectIntervalInSeconds: 3
+
+ # The read timeout towards Titan DB when health check is invoked
+ titanHealthCheckReadTimeout: 1
+
+ # The interval to try and reconnect to Elasticsearch when it is down during SDC startup
+ esReconnectIntervalInSeconds: 3
+
+ # The interval to try and reconnect to UEB health check when it is down during SDC startup
+ uebHealthCheckReconnectIntervalInSeconds: 15
+
+ # The read timeout towards UEB when helath check is invoked
+ uebHealthCheckReadTimeout: 4
+
+ # Protocols being used in SDC
+ protocols:
+ - http
+ - https
+
+ # Default imports
+ # Under each import there is the file the data will be imported from
+ defaultImports:
+ - nodes:
+ file: nodes.yml
+ - datatypes:
+ file: data.yml
+ - capabilities:
+ file: capabilities.yml
+ - relationships:
+ file: relationships.yml
+ - groups:
+ file: groups.yml
+ - policies:
+ file: policies.yml
+
+ # Users
+ # Deprecated. Will be removed in future releases
+ users:
+ tom: passwd
+ bob: passwd
+
+ cassandraConfig:
+ # Cassandra hostname
+ cassandraHosts: <%= @cassandra_ip %>
+
+ # Cassandra local data center name
+ localDataCenter: <%= @DC_NAME %>
+
+ # The read timeout towards Cassandra when health check is invoked
+ reconnectTimeout : 30000
+
+ # Should an authentication be used when accessing Cassandra
+ authenticate: true
+
+ # Username for accessing Cassandra
+ username: asdc_user
+
+ # Password for accessing Cassnadra
+ password: {{cassandra_password}}
+
+ # Does an ssl should be used
+ ssl: false
+
+ # Location of .truststore file
+ truststorePath : /config/.truststore
+
+ # The .truststore file password
+ truststorePassword : Aa123456
+
+ # Keyspaces configuration for Cassandra
+ keySpaces:
+ - { name: dox, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+ - { name: sdcaudit, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+ - { name: sdcartifact, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+ - { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+ - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+
+ # Application-specific settings of ES
+ elasticSearch:
+
+ # Mapping of index prefix to time-based frame. For example, if below is configured:
+ #
+ # - indexPrefix: auditingevents
+ # creationPeriod: minute
+ #
+ # then ES object of type which is mapped to "auditingevents-*" template, and created on 2015-12-23 13:24:54, will enter "auditingevents-2015-12-23-13-24" index.
+ # Another object created on 2015-12-23 13:25:54, will enter "auditingevents-2015-12-23-13-25" index.
+ # If creationPeriod: month, both of the above will enter "auditingevents-2015-12" index.
+ #
+ # PLEASE NOTE: the timestamps are created in UTC/GMT timezone! This is needed so that timestamps will be correctly presented in Kibana.
+ #
+ # Legal values for creationPeriod - year, month, day, hour, minute, none (meaning no time-based behaviour).
+ #
+ # If no creationPeriod is configured for indexPrefix, default behavour is creationPeriod: month.
+ indicesTimeFrequency:
+ - indexPrefix: auditingevents
+ creationPeriod: month
+ - indexPrefix: monitoring_events
+ creationPeriod: month
+
+ # Artifact types placeholder
+ artifactTypes:
+ - CHEF
+ - PUPPET
+ - SHELL
+ - YANG
+ - YANG_XML
+ - HEAT
+ - BPEL
+ - DG_XML
+ - MURANO_PKG
+ - WORKFLOW
+ - NETWORK_CALL_FLOW
+ - TOSCA_TEMPLATE
+ - TOSCA_CSAR
+ - AAI_SERVICE_MODEL
+ - AAI_VF_MODEL
+ - AAI_VF_MODULE_MODEL
+ - AAI_VF_INSTANCE_MODEL
+ - OTHER
+ - SNMP_POLL
+ - SNMP_TRAP
+ - GUIDE
+ - PLAN
+
+ # License types placeholder
+ licenseTypes:
+ - User
+ - Installation
+ - CPU
+
+ # Resource types placeholder
+ resourceTypes: &allResourceTypes
+ - VFC
+ - CP
+ - VL
+ - VF
+ - VFCMT
+ - Abstract
+ - CVFC
+
+ #Deployment resource artifacts placeHolder
+ deploymentResourceArtifacts:
+
+ # Deployment resource instance artifacts placeholders
+ # For each artifact the following properties exists:
+ #
+ # displayName - The display name of the artifact
+ # type - The type of the artifact
+ # description - The description of the artifact
+ # fileExtension - The file extension of the artifact file for uploading
+ deploymentResourceInstanceArtifacts:
+ heatEnv:
+ displayName: "HEAT ENV"
+ type: HEAT_ENV
+ description: "Auto-generated HEAT Environment deployment artifact"
+ fileExtension: "env"
+ VfHeatEnv:
+ displayName: "VF HEAT ENV"
+ type: HEAT_ENV
+ description: "VF Auto-generated HEAT Environment deployment artifact"
+ fileExtension: "env"
+
+ # Tosca artifacts placeholders
+ # For each artifact there is a template and a scar.
+ # For each one the following properties exists:
+ #
+ # artifactName - The suffix of the artifact file
+ # displayName - The display name of the artifact
+ # type - The type of the artifact
+ # description - The description of the artifact
+ toscaArtifacts:
+ assetToscaTemplate:
+ artifactName: -template.yml
+ displayName: Tosca Template
+ type: TOSCA_TEMPLATE
+ description: TOSCA representation of the asset
+ assetToscaCsar:
+ artifactName: -csar.csar
+ displayName: Tosca Model
+ type: TOSCA_CSAR
+ description: TOSCA definition package of the asset
+
+ # Resource category to exclude
+ excludeResourceCategory:
+ - Generic
+
+ # Resource type to exclude
+ excludeResourceType:
+ - PNF
+
+ # Informational resource artifacts placeHolder
+ # For each artifact the following properties exists:
+ #
+ # displayName - The display name of the artifact
+ # type - The type of the artifact
+ informationalResourceArtifacts:
+ features:
+ displayName: Features
+ type: OTHER
+ capacity:
+ displayName: Capacity
+ type: OTHER
+ vendorTestResult:
+ displayName: Vendor Test Result
+ type: OTHER
+ testScripts:
+ displayName: Test Scripts
+ type: OTHER
+ CloudQuestionnaire:
+ displayName: Cloud Questionnaire (completed)
+ type: OTHER
+ HEATTemplateFromVendor:
+ displayName: HEAT Template from Vendor
+ type: HEAT
+ resourceSecurityTemplate:
+ displayName: Resource Security Template
+ type: OTHER
+
+ # Service category to exclude
+ excludeServiceCategory:
+
+ # Informational service artifacts placeHolder
+ # For each artifact the following properties exists:
+ #
+ # displayName - The display name of the artifact
+ # type - The type of the artifact
+ informationalServiceArtifacts:
+ serviceArtifactPlan:
+ displayName: Service Artifact Plan
+ type: OTHER
+ summaryOfImpactsToECOMPElements:
+ displayName: Summary of impacts to ECOMP elements,OSSs, BSSs
+ type: OTHER
+ controlLoopFunctions:
+ displayName: Control Loop Functions
+ type: OTHER
+ dimensioningInfo:
+ displayName: Dimensioning Info
+ type: OTHER
+ affinityRules:
+ displayName: Affinity Rules
+ type: OTHER
+ operationalPolicies:
+ displayName: Operational Policies
+ type: OTHER
+ serviceSpecificPolicies:
+ displayName: Service-specific Policies
+ type: OTHER
+ engineeringRules:
+ displayName: Engineering Rules (ERD)
+ type: OTHER
+ distributionInstructions:
+ displayName: Distribution Instructions
+ type: OTHER
+ certificationTestResults:
+ displayName: TD Certification Test Results
+ type: OTHER
+ deploymentVotingRecord:
+ displayName: Deployment Voting Record
+ type: OTHER
+ serviceQuestionnaire:
+ displayName: Service Questionnaire
+ type: OTHER
+ serviceSecurityTemplate:
+ displayName: Service Security Template
+ type: OTHER
+
+ # Service api artifacts placeHolder
+ # For each artifact the following properties exists:
+ #
+ # displayName - The display name of the artifact
+ # type - The type of the artifact
+ serviceApiArtifacts:
+ configuration:
+ displayName: Configuration
+ type: OTHER
+ instantiation:
+ displayName: Instantiation
+ type: OTHER
+ monitoring:
+ displayName: Monitoring
+ type: OTHER
+ reporting:
+ displayName: Reporting
+ type: OTHER
+ logging:
+ displayName: Logging
+ type: OTHER
+ testing:
+ displayName: Testing
+ type: OTHER
+
+ # The maximum number of keys permited for additional information on service
+ additionalInformationMaxNumberOfKeys: 50
+
+ # Collect process statistics
+ systemMonitoring:
+
+ # Should monitoring be enabled
+ enabled: false
+
+ # In case of going through the FE server proxy the information to the BE
+ isProxy: false
+
+ # What is the interval of the statistics collection
+ probeIntervalInSeconds: 15
+
+ defaultHeatArtifactTimeoutMinutes: 60
+
+ # Service deployment artifacts placeHolder
+ # For each artifact the following properties exists:
+ #
+ # acceptedTypes - File types that can be uploaded as each artifact
+ serviceDeploymentArtifacts:
+ YANG_XML:
+ acceptedTypes:
+ - xml
+ VNF_CATALOG:
+ acceptedTypes:
+ - xml
+ MODEL_INVENTORY_PROFILE:
+ acceptedTypes:
+ - xml
+ MODEL_QUERY_SPEC:
+ acceptedTypes:
+ - xml
+ UCPE_LAYER_2_CONFIGURATION:
+ acceptedTypes:
+ - xml
+
+ #AAI Artifacts
+ AAI_SERVICE_MODEL:
+ acceptedTypes:
+ - xml
+ AAI_VF_MODULE_MODEL:
+ acceptedTypes:
+ - xml
+ AAI_VF_INSTANCE_MODEL:
+ acceptedTypes:
+ - xml
+ OTHER:
+ acceptedTypes:
+
+ #PLAN
+ PLAN:
+ acceptedTypes:
+ - xml
+
+ # Resource deployment artifacts placeHolder
+ # For each artifact the following properties exists:
+ #
+ # acceptedTypes - File types that can be uploaded as each artifact
+ # validForRespurceTypes - Resource types that support each artifact.
+ # If left empty it means all resource types are valid
+ resourceDeploymentArtifacts:
+ HEAT:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes: *allResourceTypes
+ HEAT_VOL:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes: *allResourceTypes
+ HEAT_NET:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes: *allResourceTypes
+ HEAT_NESTED:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes: *allResourceTypes
+ HEAT_ARTIFACT:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ YANG_XML:
+ acceptedTypes:
+ - xml
+ validForResourceTypes: *allResourceTypes
+ VNF_CATALOG:
+ acceptedTypes:
+ - xml
+ validForResourceTypes: *allResourceTypes
+ VF_LICENSE:
+ acceptedTypes:
+ - xml
+ validForResourceTypes: *allResourceTypes
+ VENDOR_LICENSE:
+ acceptedTypes:
+ - xml
+ validForResourceTypes: *allResourceTypes
+ MODEL_INVENTORY_PROFILE:
+ acceptedTypes:
+ - xml
+ validForResourceTypes: *allResourceTypes
+ MODEL_QUERY_SPEC:
+ acceptedTypes:
+ - xml
+ validForResourceTypes: *allResourceTypes
+ LIFECYCLE_OPERATIONS:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes:
+ - VF
+ - VFC
+ VES_EVENTS:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes: *allResourceTypes
+ PERFORMANCE_COUNTER:
+ acceptedTypes:
+ - csv
+ validForResourceTypes: *allResourceTypes
+ APPC_CONFIG:
+ acceptedTypes:
+ validForResourceTypes:
+ - VF
+ DCAE_TOSCA:
+ acceptedTypes:
+ - yml
+ - yaml
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_JSON:
+ acceptedTypes:
+ - json
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_POLICY:
+ acceptedTypes:
+ - emf
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_DOC:
+ acceptedTypes:
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_EVENT:
+ acceptedTypes:
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ AAI_VF_MODEL:
+ acceptedTypes:
+ - xml
+ validForResourceTypes:
+ - VF
+ AAI_VF_MODULE_MODEL:
+ acceptedTypes:
+ - xml
+ validForResourceTypes:
+ - VF
+ OTHER:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ SNMP_POLL:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ SNMP_TRAP:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+
+ #PLAN
+ PLAN:
+ acceptedTypes:
+ - xml
+ validForResourceTypes:
+ - VF
+ - VFC
+
+ # Resource instance deployment artifacts placeHolder
+ # For each artifact the following properties exists:
+ #
+ # acceptedTypes - File types that can be uploaded as each artifact
+ # validForRespurceTypes - Resource types that support each artifact.
+ # If left empty it means all resource types are valid
+ resourceInstanceDeploymentArtifacts:
+ HEAT_ENV:
+ acceptedTypes:
+ - env
+ VF_MODULES_METADATA:
+ acceptedTypes:
+ - json
+ VES_EVENTS:
+ acceptedTypes:
+ - yaml
+ - yml
+ PERFORMANCE_COUNTER:
+ acceptedTypes:
+ - csv
+ DCAE_INVENTORY_TOSCA:
+ acceptedTypes:
+ - yml
+ - yaml
+ DCAE_INVENTORY_JSON:
+ acceptedTypes:
+ - json
+ DCAE_INVENTORY_POLICY:
+ acceptedTypes:
+ - emf
+ DCAE_INVENTORY_DOC:
+ acceptedTypes:
+ DCAE_INVENTORY_BLUEPRINT:
+ acceptedTypes:
+ DCAE_INVENTORY_EVENT:
+ acceptedTypes:
+ SNMP_POLL:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ SNMP_TRAP:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+
+ #PLAN
+ PLAN:
+ acceptedTypes:
+ - xml
+
+ # Resource informational artifacts placeHolder
+ # For each artifact the following properties exists:
+ #
+ # acceptedTypes - File types that can be uploaded as each artifact
+ # validForRespurceTypes - Resource types that support each artifact.
+ # If left empty it means all resource types are valid
+ resourceInformationalArtifacts:
+ CHEF:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ PUPPET:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ SHELL:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ YANG:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ YANG_XML:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ HEAT:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ BPEL:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ DG_XML:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ MURANO_PKG:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ OTHER:
+ acceptedTypes:
+ validForResourceTypes:
+ - VFC
+ - CVFC
+ - CP
+ - VL
+ - VF
+ - VFCMT
+ - Abstract
+ - PNF
+ SNMP_POLL:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ SNMP_TRAP:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
+ GUIDE:
+ acceptedTypes:
+ validForResourceTypes:
+ - VF
+ - VFC
+ - CVFC
+
+ # Resource informational deployment artifact placeholder
+ resourceInformationalDeployedArtifacts:
+
+ # Requirements needed to be fulfilled before certificattion
+ requirementsToFulfillBeforeCert:
+
+ # Capabillities needed to be fulfilled before certificattion
+ capabilitiesToConsumeBeforeCert:
+
+ # Urls that should not be logged
+ unLoggedUrls:
+ - /sdc2/rest/healthCheck
+
+ # When component is being set as deleted those are the clean configurations
+ cleanComponentsConfiguration:
+
+ # The interval to check for deleted components to clean
+ cleanIntervalInMinutes: 1440
+
+ # The components types to delete
+ componentsToClean:
+ - Resource
+ - Service
+
+ # Deprecated. Will be removed in future releases
+ artifactsIndex: resources
+
+ # Used to add header and footer to heatENV files generated by SDC
+ heatEnvArtifactHeader: ""
+ heatEnvArtifactFooter: ""
+
+ onboarding:
+
+ # Onboarding protocol
+ protocol: http
+
+ # Onboarding backend hostname
+ host: <%= @host_ip %>
+
+ # Onboarding backend http port
+ port: <%= @catalog_port %>
+
+ # The url that being used when downloading CSARs
+ downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
+
+ # Url for onboarding health check
+ healthCheckUri: "/onboarding-api/v1.0/healthcheck"
+
+
+ #GSS IDNS
+ # Switchover configuration is used for geo redundency to provide automatic failovers
+ switchoverDetector:
+ gBeFqdn:
+ gFeFqdn:
+ beVip: 1.2.3.4
+ feVip: 1.2.3.4
+ beResolveAttempts: 3
+ feResolveAttempts: 3
+ enabled: false
+ interval: 60
+ changePriorityUser: ecompasdc
+ changePriorityPassword: ecompasdc123
+ publishNetworkUrl:
+ publishNetworkBody: '{"note":"comment"}'
+ groups:
+ beSet: { changePriorityUrl: "", changePriorityBody: '{"name":"","uri":"","no_ad_redirection":false,"v4groups":{"failover_groups":["","","failover_policy":["FAILALL"]},"comment":"","intended_app_proto":"DNS"}'}
+ feSet: { changePriorityUrl: "", changePriorityBody: '{"name":"","uri":"","no_ad_redirection":false,"v4groups":{"failover_groups":["",""],"failover_policy":["FAILALL"]},"comment":"","intended_app_proto":"DNS"}'}
+
+ # Cache for datatypes. Improving run times for data type search
+ applicationL1Cache:
+ datatypes:
+ enabled: true
+ firstRunDelay: 10
+ pollIntervalInSec: 60
+
+ # Deprecated. Will be removed in future releases
+ applicationL2Cache:
+ enabled: false
+ catalogL1Cache:
+ enabled: false
+ resourcesSizeInCache: 300
+ servicesSizeInCache: 200
+ productsSizeInCache: 100
+ queue:
+ syncIntervalInSecondes: 43200
+ waitOnShutDownInMinutes: 10
+ numberOfCacheWorkers: 4
+
+ # Validators for tosca properties
+ toscaValidators:
+ stringMaxLength: 2500
+
+ # Should audit be disabled
+ disableAudit: false
+
+ # VF module validations properties
+ vfModuleProperties:
+ min_vf_module_instances:
+ forBaseModule: 1
+ forNonBaseModule: 0
+ max_vf_module_instances:
+ forBaseModule: 1
+ forNonBaseModule:
+ initial_count:
+ forBaseModule: 1
+ forNonBaseModule: 0
+ vf_module_type:
+ forBaseModule: Base
+ forNonBaseModule: Expansion
+
+ # For each generic node type defining it's coresponding class
+ genericAssetNodeTypes:
+ VFC: org.openecomp.resource.abstract.nodes.VFC
+ CVFC: org.openecomp.resource.abstract.nodes.VFC
+ VF : org.openecomp.resource.abstract.nodes.VF
+ PNF: org.openecomp.resource.abstract.nodes.PNF
+ Service: org.openecomp.resource.abstract.nodes.service
+
+
+BE-distribution-engine-configuration.yaml
+-----------------------------------------
+
+::
+
+ # UEB servers list
+ uebServers:
+ <% node['UEB']['fqdn'].each do |conn| -%>
+ - <%= conn %>
+ <% end -%>
+
+ # UEB public key
+ uebPublicKey: <%= node['UEB']['PublicKey'] %>
+
+ # UEB secret key
+ uebSecretKey: <%= node['UEB']['SecretKey'] %>
+
+ # Topic name for receiving distribution notification
+ distributionNotifTopicName: SDC-DISTR-NOTIF-TOPIC
+
+ # Topic name for distribution status
+ distributionStatusTopicName: SDC-DISTR-STATUS-TOPIC
+
+ # Distibution initializtion retry interval time
+ initRetryIntervalSec: 5
+
+ # Distribution initializtion maximum interval time
+ initMaxIntervalSec: 60
+
+ # Deprecated. Will be removed in future releases
+ distribNotifServiceArtifactTypes:
+ info:
+ - MURANO-PKG
+
+ # Deprecated. Will be removed in future releases
+ distribNotifResourceArtifactTypes:
+ lifecycle:
+ - HEAT
+ - DG-XML
+
+ # Distribution environments
+ environments:
+ - <%= node.chef_environment %>
+
+ distributionStatusTopic:
+
+ # Distribution status polling interval
+ pollingIntervalSec: 60
+
+ # Distribution status fetch time
+ fetchTimeSec: 15
+
+ # Distribution status consumer group
+ consumerGroup: sdc-<%= node.chef_environment %>
+
+ # Distribution status consumer id
+ consumerId: sdc-<%= node.chef_environment %>1
+
+ distributionNotificationTopic:
+
+ # Minimum pool size for distribution notifications
+ minThreadPoolSize: 0
+
+ # Maximum pool size for distribution notifications
+ maxThreadPoolSize: 10
+
+ # Maximum waiting time after sending a notification
+ maxWaitingAfterSendingSeconds: 5
+
+ # Deprecated. Will be removed in future releases
+ createTopic:
+ partitionCount: 1
+ replicationCount: 1
+
+ # STarting the distribution engine
+ startDistributionEngine: true
+
+ #This is false by default, since ONAP Dmaap currently doesn't support https
+ # Does https should be used with Dmaap
+ useHttpsWithDmaap: false
+
+
+BE-onboarding-configuration.yaml
+--------------------------------
+
+::
+
+ notifications:
+
+ # Backend onboarding notifications polling interval in milliseconds
+ pollingIntervalMsec: 2000
+
+ # Backend onboarding notifications selection size
+ selectionSize: 100
+
+ # Backend onboarding norifications backend hostname
+ beHost: <%= @catalog_ip %>
+
+ # Backend onboarding notifications backend http port
+ beHttpPort: <%= @catalog_port %>
+
+
+BE-titan.properties
+-------------------
+
+::
+
+ # Titan storage backend
+ storage.backend=cassandra
+
+ # Titan storage hostname
+ storage.hostname=<%= @CASSANDRA_IP %>
+
+ # Titan storage port]
+ storage.port=9160
+
+ # Titan storage username
+ storage.username=<%= @CASSANDRA_USR %>
+
+ # Titan storage password
+ storage.password=<%= @CASSANDRA_PWD %>
+
+ # Titan storage connection timeout
+ storage.connection-timeout=10000
+
+ # Titan cassandra keyspace name
+ storage.cassandra.keyspace=sdctitan
+
+ # Is Titan cassandra ssl is enabled
+ storage.cassandra.ssl.enabled=false
+
+ # Titan cassandra ssl truststore file location
+ storage.cassandra.ssl.truststore.location=/var/lib/jetty/config/.truststore
+
+ # Titan cassandra ssl truststore file password
+ storage.cassandra.ssl.truststore.password=Aa123456
+
+ # Does titan should use cache
+ cache.db-cache = false
+
+ # How long in milliseconds should the cache keep entries before flushing them
+ cache.db-cache-clean-wait = 20
+
+ # Default experation time in milliseconds for entries in the cache
+ cache.db-cache-time = 180000
+
+ # Size of titan database cache
+ cache.db-cache-size = 0.5
+
+ # Titan cassandra read consistency level
+ storage.cassandra.read-consistency-level=LOCAL_QUORUM
+
+ # Titan cassandra write consistency level
+ storage.cassandra.write-consistency-level=LOCAL_QUORUM
+
+ # Titan cassandra replication strategy class name
+ storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.NetworkTopologyStrategy
+
+ # Titan cassandra replication startegy options
+ storage.cassandra.replication-strategy-options=<%= @DC_NAME %>,<%= @rep_factor %>
+
+ # Titan cassandra local data center name
+ storage.cassandra.astyanax.local-datacenter=<%= @DC_NAME %>
+
+ # Number of times the system attempts to acquire a lock before giving up and throwing an exception
+ storage.lock.retries=5
+
+ # Number of milliseconds the system waits for a lock application to be acknowledged by the storage backend
+ storage.lock.wait-time=500
+
- * Configuration is typically: provided for platform-component and sdk projects;
- and referenced in developer and user guides.
-
- * This note must be removed after content has been added.
+Frontend Configuration
+======================
+FE-configuration.yaml
+---------------------
+::
-Example ...
+ # Catalog frontend hostname
+ feFqdn: <%= @fe_host_ip %>
+
+ # Catalog backend hostname
+ beHost: <%= @be_host_ip %>
+
+ # Catalog backend http port
+ beHttpPort: <%= @catalog_port %>
+
+ # Catalog backend http context
+ beContext: /sdc2/rest/v1/catalog/upload/resources
+
+ # Catalog backend protocol
+ beProtocol: http
+
+ # Catalog backend ssl port
+ beSslPort: <%= @ssl_port %>
+
+ # Threadpool size for handling requests
+ threadpoolSize: 50
+
+ # Request processing timeout (seconds)
+ requestTimeout: 10
+
+ # Health check timeout in milliseconds
+ healthCheckSocketTimeoutInMs: 5000
+
+ # Health check inteval in seconds
+ healthCheckIntervalInSeconds: 5
+
+ onboarding:
+
+ # Onboarding protocol
+ protocol: http
+
+ # Onboarding frontend hostname
+ host: <%= @fe_host_ip %>
+
+ # Onboarding frontend port
+ port: 8181
+
+ # Onboarding frontend health check url
+ healthCheckUri: "/onboarding/v1.0/healthcheck"
+
+ # Request headers for identification of the user that made the request
+ identificationHeaderFields:
+ -
+ - &HTTP_IV_USER HTTP_IV_USER
+ - &iv-user iv-user
+ -
+ - &USER_ID USER_ID
+ - &user-id user-id
+ -
+ - &HTTP_CSP_ATTUID HTTP_CSP_ATTUID
+ - &csp-attuid csp-attuid
+ -
+ - &HTTP_CSP_WSTYPE HTTP_CSP_WSTYPE
+ - &csp-wstype csp-wstype
+
+ # Optional request headers
+ optionalHeaderFields:
+ -
+ - &HTTP_CSP_FIRSTNAME HTTP_CSP_FIRSTNAME
+ - &csp-firstname csp-firstname
+ -
+ - &HTTP_CSP_LASTNAME HTTP_CSP_LASTNAME
+ - &csp-lastname csp-lastname
+ -
+ - &HTTP_IV_REMOTE_ADDRESS HTTP_IV_REMOTE_ADDRESS
+ - &iv-remote-address iv-remote-address
+ -
+ - &HTTP_CSP_EMAIL HTTP_CSP_EMAIL
+ - &csp-email csp-email
+
+ # Frontend configuration version
+ version: 1.0
+
+ # Frontend configuration release date
+ released: 2012-11-30
+
+ # Connection parameters
+ connection:
+ url: jdbc:mysql://localhost:3306/db
+ poolSize: 17
+
+ # Protocols being used in SDC
+ protocols:
+ - http
+ - https
+
+ # Collect process statistics
+ systemMonitoring:
+
+ # Should monitoring be enabled
+ enabled: false
+
+ # In case of going through the FE server proxy the information to the BE
+ isProxy: true
+
+ # What is the interval of the statistics collection
+ probeIntervalInSeconds: 15
+
+ # Kibana hostname
+ kibanaHost: localhost
+
+ # Kibana http port
+ kibanaPort: 5601
+
+ # Kibana usage protocol
+ kibanaProtocol: http
-You can provide the following in ``basic.conf``
-``host=ADDRESS``
- The address of the host
+FE-onboarding-configuration.yaml
+--------------------------------
-``port=PORT``
- The port used for signaling
+::
- Optional. Default: ``8080``
+ notifications:
+
+ # Frontend onboarding notifications polling interval in milliseconds
+ pollingIntervalMsec: 2000
+
+ # Frontend onboarding notifications selection size
+ selectionSize: 100
+
+ # Frontend onboarding norifications backend hostname
+ beHost: <%= @catalog_ip %>
+
+ # Frontend onboarding notifications backend http port
+ beHttpPort: <%= @catalog_port %>
diff --git a/docs/consumedapis.rst b/docs/consumedapis.rst
index 099442d3a4..2379d75f70 100644
--- a/docs/consumedapis.rst
+++ b/docs/consumedapis.rst
@@ -1,7 +1,8 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
+=============
Consumed APIs
=============
-SDC Project does not consume any APIs form other sources therfore this section is currently empty
+SDC Project does not consume any APIs from other sources therefore this section is currently empty
diff --git a/docs/logging.rst b/docs/logging.rst
index a6cca5b707..9e82e15f84 100644
--- a/docs/logging.rst
+++ b/docs/logging.rst
@@ -5,16 +5,6 @@
Logging
=======
-.. note::
- * This section is used to describe the informational or diagnostic messages emitted from
- a software component and the methods or collecting them.
-
- * This section is typically: provided for a platform-component and sdk; and
- referenced in developer and user guides
-
- * This note must be removed after content has been added.
-
-
Where to Access Information
---------------------------
diff --git a/docs/offeredapis.rst b/docs/offeredapis.rst
index 349e7bad4f..e9decd1e5c 100644
--- a/docs/offeredapis.rst
+++ b/docs/offeredapis.rst
@@ -17,7 +17,7 @@ Overview
Version information
-------------------
-*Version* : 1.0.0
+*Version* : 1.1.0
URI scheme
----------
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
index a0034a3828..ddbcaf72b9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
@@ -25,14 +25,12 @@ import org.openecomp.config.api.ConfigurationManager;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.heat.datatypes.manifest.ManifestFile;
import org.openecomp.sdc.heat.datatypes.model.Resource;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
-import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslatedHeatResource;
@@ -42,6 +40,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
import org.openecomp.sdc.translator.services.heattotosca.ConfigConstants;
import org.openecomp.sdc.translator.services.heattotosca.Constants;
import org.openecomp.sdc.translator.services.heattotosca.NameExtractor;
+import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
import java.io.InputStream;
@@ -385,10 +384,7 @@ public class TranslationContext {
}
if(nodeAbstractNodeTemplateIdMap.containsKey(originalNodeTemplateId)){
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + originalNodeTemplateId + " occures more than once in different addOn files")
- .build());
+ throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(originalNodeTemplateId).build());
}
nodeAbstractNodeTemplateIdMap.put(originalNodeTemplateId, abstractNodeTemplateId);
this.getUnifiedSubstitutionData().get(serviceTemplateFileName).setNodesRelatedAbstractNode(
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
index b86038d175..5d1bb1c61e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
@@ -31,6 +31,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
import java.util.ArrayList;
import java.util.Collection;
@@ -154,10 +155,7 @@ public class ConsolidationDataUtil {
if(isNestedResourceIdOccuresInDifferentNestedFiles(context, nestedHeatFileName,
nestedNodeTemplateId)){
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + nestedNodeTemplateId + " occures more than once in different addOn "
- + "files").build());
+ throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(nestedNodeTemplateId).build());
}
ConsolidationData consolidationData = context.getConsolidationData();
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
index 16a6301968..d3f2a721c9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
@@ -24,6 +24,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
import java.util.ArrayList;
import java.util.Collection;
@@ -637,20 +638,16 @@ public class ConsolidationService {
NodeTemplate startingPortNodeTemplate = nodeTemplates.get(portNodeTemplateIdList.get(0));
if (Objects.isNull(startingPortNodeTemplate)) {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + portNodeTemplateIdList.get(0) + " occures more than once in different addOn files")
- .build());
+ throw new CoreException(
+ new DuplicateResourceIdsInDifferentFilesErrorBuilder(portNodeTemplateIdList.get(0)).build());
}
for (int i = 1; i < portNodeTemplateIdList.size(); i++) {
NodeTemplate portNodeTemplate = nodeTemplates.get(portNodeTemplateIdList.get(i));
if (Objects.isNull(portNodeTemplate)) {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + portNodeTemplateIdList.get(i) + " occures more than once in different addOn "
- + "files").build());
+ throw new CoreException(
+ new DuplicateResourceIdsInDifferentFilesErrorBuilder(portNodeTemplateIdList.get(i)).build());
}
if (!isPropertySimilarBetweenNodeTemplates(propertyToCheck, portNodeTemplateIdList, nodeTemplates)) {
@@ -695,9 +692,8 @@ public class ConsolidationService {
for (int i = 1; i < entityNodeTemplateIds.size(); i++) {
NodeTemplate currentNodeTemplate = idToNodeTemplate.get(entityNodeTemplateIds.get(i));
if (Objects.isNull(currentNodeTemplate)) {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + entityNodeTemplateIds.get(i) + " occures more than once in different addOn files").build());
+ throw new CoreException(
+ new DuplicateResourceIdsInDifferentFilesErrorBuilder(entityNodeTemplateIds.get(i)).build());
}
if(propertyExistCondition != isPropertyExistInNodeTemplate(propertyToCheck, currentNodeTemplate)){
return false;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/DuplicateResourceIdsInDifferentFilesErrorBuilder.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/DuplicateResourceIdsInDifferentFilesErrorBuilder.java
new file mode 100644
index 0000000000..a75e8b391d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/DuplicateResourceIdsInDifferentFilesErrorBuilder.java
@@ -0,0 +1,16 @@
+package org.openecomp.sdc.translator.services.heattotosca.errors;
+
+import org.openecomp.sdc.common.errors.BaseErrorBuilder;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+
+public final class DuplicateResourceIdsInDifferentFilesErrorBuilder extends BaseErrorBuilder {
+
+ private static final String DUPLICATE_RESOURCE_ID_MSG = "Resource with id %s occurs more than once in " +
+ "different addOn files";
+
+ public DuplicateResourceIdsInDifferentFilesErrorBuilder(String resourceId) {
+ getErrorCodeBuilder().withId(TranslatorErrorCodes.DUPLICATE_RESOURCE_ID_IN_DIFFERENT_FILES)
+ .withCategory(ErrorCategory.APPLICATION)
+ .withMessage(String.format(DUPLICATE_RESOURCE_ID_MSG, resourceId));
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/TranslatorErrorCodes.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/TranslatorErrorCodes.java
index bfcf834ae1..5afb1ae3c2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/TranslatorErrorCodes.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/errors/TranslatorErrorCodes.java
@@ -29,4 +29,5 @@ public class TranslatorErrorCodes {
"REFERENCE_TO_UNSUPPORTED_RESOURCE";
public static final String NOT_IN_SYNC_NUMBER_OF_INTERFACES = "NOT_IN_SYNC_NUMBER_OF_INTERFACES";
public static final String INVALID_PROPERTY_VALUE = "INVALID_PROPERTY_VALUE";
+ public static final String DUPLICATE_RESOURCE_ID_IN_DIFFERENT_FILES = "DUPLICATE_RESOURCE_ID_IN_DIFFERENT_FILES";
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
index b1946b3f9b..9399b91ce1 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
@@ -2,7 +2,10 @@ package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
@@ -19,6 +22,9 @@ public class UnifiedCompositionMixPatternFullTest extends BaseFullTranslationTes
// do not delete this function. it prevents the superclass setup from running
}
+ @Rule
+ public ExpectedException exception = ExpectedException.none();
+
@Test
public void testMixPatterns() throws IOException {
inputFilesPath =
@@ -52,16 +58,13 @@ public class UnifiedCompositionMixPatternFullTest extends BaseFullTranslationTes
@Test
public void testDuplicateResourceIdsInDiffAddOnFiles() throws IOException {
+ exception.expect(CoreException.class);
+ exception.expectMessage("Resource with id lb_0_int_oam_int_0_port occurs more " +
+ "than once in different addOn files");
+
inputFilesPath =
"/mock/services/heattotosca/fulltest/mixPatterns/duplicateResourceIdsInDiffAddOnFiles/in";
-
- try {
- testTranslationWithInit();
- }catch(Exception e){
- log.debug("",e);
- Assert.assertEquals(e.getMessage(), "Resource with id lb_0_int_oam_int_0_port occures more " +
- "than once in different addOn files");
- }
+ testTranslationWithInit();
}
@Test
diff --git a/pom.xml b/pom.xml
index 6a7d39d8f2..b633606dc8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,7 +85,7 @@
<extentreports.version>3.0.3</extentreports.version>
<!-- parser-->
- <sdc-tosca-parser.version>1.1.34</sdc-tosca-parser.version>
+ <sdc-tosca-parser.version>1.1.32</sdc-tosca-parser.version>
<!--JaCoCO -->
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
@@ -408,7 +408,7 @@
<artifact-generator-api.version>1710.0.0</artifact-generator-api.version>
<artifact-generator-core.version>1710.0.0</artifact-generator-core.version>
<dox-common-lib.version>1710.0.0</dox-common-lib.version>
- <sdc-tosca-parser.version>1.1.14</sdc-tosca-parser.version>
+ <sdc-tosca-parser.version>1.1.32</sdc-tosca-parser.version>
</properties>
</profile>
diff --git a/sdc-os-chef/pom.xml b/sdc-os-chef/pom.xml
index 21deaf42a6..9fec52d23e 100644
--- a/sdc-os-chef/pom.xml
+++ b/sdc-os-chef/pom.xml
@@ -305,9 +305,11 @@
<apiVersion>1.23</apiVersion>
<registry>nexus3.onap.org:10003</registry>
<authConfig>
- <username>docker</username>
- <password>docker</password>
- </authConfig>
+ <pull>
+ <username>docker</username>
+ <password>docker</password>
+ </pull>
+ </authConfig>
<images>
@@ -428,7 +430,6 @@
<id>push-images</id>
<phase>deploy</phase>
<goals>
- <goal>build</goal>
<goal>push</goal>
</goals>
<configuration>
diff --git a/sdc-os-chef/scripts/docker_run.sh b/sdc-os-chef/scripts/docker_run.sh
index 417db0994c..963b2fcf14 100755
--- a/sdc-os-chef/scripts/docker_run.sh
+++ b/sdc-os-chef/scripts/docker_run.sh
@@ -17,16 +17,16 @@ function cleanup {
function dir_perms {
- mkdir -p /data/logs/BE/ASDC/ASDC-BE
- mkdir -p /data/logs/FE/ASDC/ASDC-FE
+ mkdir -p /data/logs/BE/SDC/SDC-BE
+ mkdir -p /data/logs/FE/SDC/SDC-FE
chmod -R 777 /data/logs
}
function monitor_docker {
echo monitor $1 Docker
-
-TIME_OUT=180
+sleep 5
+TIME_OUT=600
INTERVAL=20
TIME=0
while [ "$TIME" -lt "$TIME_OUT" ]; do
@@ -201,9 +201,9 @@ echo -e ""
/data/scripts/docker_health.sh
-if [ $? -ne 0 ]; then
- exit 1
-fi
+#if [ $? -ne 0 ]; then
+# exit 1
+#fi
# sanityDocker
echo "docker run sdc-frontend..."
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_5_jetty_Modules.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_4_jetty_Modules.rb
index 046e3c6919..046e3c6919 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_5_jetty_Modules.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_4_jetty_Modules.rb
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_6_setup_elasticsearch.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_5_setup_elasticsearch.rb
index 39fc5af883..39fc5af883 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_6_setup_elasticsearch.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_5_setup_elasticsearch.rb
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_7_setup_portal_properties.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_6_setup_portal_properties.rb
index 8c57de6caf..8c57de6caf 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_7_setup_portal_properties.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_6_setup_portal_properties.rb
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_8_logback.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_7_logback.rb
index 2dfc4f1089..2dfc4f1089 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_8_logback.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_7_logback.rb
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_9_errors_config.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_8_errors_config.rb
index 684d730709..684d730709 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_9_errors_config.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_8_errors_config.rb
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_4_create_DMaaP_keys.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_Number_create_DMaaP_keys.rb-NotUsed
index 583dfff7b2..583dfff7b2 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_4_create_DMaaP_keys.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_Number_create_DMaaP_keys.rb-NotUsed
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_10_import_Normatives.rb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_Number_import_Normatives.rb
index 6e9b24133d..6e9b24133d 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_10_import_Normatives.rb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/recipes/BE_Number_import_Normatives.rb
diff --git a/sdc-os-chef/sdc-backend/chef-solo/roles/catalog-be.json b/sdc-os-chef/sdc-backend/chef-solo/roles/catalog-be.json
index a05a2830eb..220eee7c92 100644
--- a/sdc-os-chef/sdc-backend/chef-solo/roles/catalog-be.json
+++ b/sdc-os-chef/sdc-backend/chef-solo/roles/catalog-be.json
@@ -13,11 +13,11 @@
"recipe[sdc-catalog-be::BE_1_cleanup_jettydir]",
"recipe[sdc-catalog-be::BE_2_setup_configuration]",
"recipe[sdc-catalog-be::BE_3_locate_keystore]",
- "recipe[sdc-catalog-be::BE_5_jetty_Modules]",
- "recipe[sdc-catalog-be::BE_6_setup_elasticsearch]",
- "recipe[sdc-catalog-be::BE_7_setup_portal_properties]",
- "recipe[sdc-catalog-be::BE_8_logback]",
- "recipe[sdc-catalog-be::BE_9_errors_config]"
+ "recipe[sdc-catalog-be::BE_4_jetty_Modules]",
+ "recipe[sdc-catalog-be::BE_5_setup_elasticsearch]",
+ "recipe[sdc-catalog-be::BE_6_setup_portal_properties]",
+ "recipe[sdc-catalog-be::BE_7_logback]",
+ "recipe[sdc-catalog-be::BE_8_errors_config]"
],
"env_run_lists": {
}
diff --git a/sdc-os-chef/sdc-backend/startup.sh b/sdc-os-chef/sdc-backend/startup.sh
index 87f4ae674d..8e5926cdc4 100644
--- a/sdc-os-chef/sdc-backend/startup.sh
+++ b/sdc-os-chef/sdc-backend/startup.sh
@@ -37,7 +37,9 @@ else
chef-solo -c normatives.rb
fi
+echo "###### DOCKER STARTED #####"
+
while true; do sleep 2; done
-echo "###### DOCKER STARTED #####"
+
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vHSS.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vHSS.csar
new file mode 100644
index 0000000000..ea5c1283be
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vHSS.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vMME.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vMME.csar
new file mode 100644
index 0000000000..f921f46e06
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vMME.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vPCRF_aligned_fixed.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vPCRF_aligned_fixed.csar
new file mode 100644
index 0000000000..6f997bcf98
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vPCRF_aligned_fixed.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vSPGW.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vSPGW.csar
new file mode 100644
index 0000000000..8beae6e74a
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/Huawei_vSPGW.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ZteEpcSpgwVf-csar.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ZteEpcSpgwVf-csar.csar
new file mode 100644
index 0000000000..0eacd74655
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ZteEpcSpgwVf-csar.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/cscf_si_fixed.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/cscf_si_fixed.csar
new file mode 100644
index 0000000000..bc8397a86e
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/cscf_si_fixed.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ntas.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ntas.csar
new file mode 100644
index 0000000000..6b6f7c4d8c
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/ntas.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/resource-ZteEpcMmeVf-csar_fix.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/resource-ZteEpcMmeVf-csar_fix.csar
new file mode 100644
index 0000000000..bf0e775102
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/resource-ZteEpcMmeVf-csar_fix.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csar
index ea977bea80..347b8bcced 100644
--- a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csar
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_aligned.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_v3.0.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_v3.0.csar
new file mode 100644
index 0000000000..1c52cca12d
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vCSCF_v3.0.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vSBC_aligned.csar b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vSBC_aligned.csar
new file mode 100644
index 0000000000..ee60eed872
--- /dev/null
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/Files/VNFs/vSBC_aligned.csar
Binary files differ
diff --git a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/sanityTests_3_sanity_execution.rb b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/sanityTests_3_sanity_execution.rb
index 690559a74d..c4323c233f 100644
--- a/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/sanityTests_3_sanity_execution.rb
+++ b/sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/recipes/sanityTests_3_sanity_execution.rb
@@ -6,7 +6,7 @@ cwd "#{tests_base}"
code <<-EOH
cd "#{tests_base}"
jar_file=`ls test-apis*-jar-with-dependencies.jar`
- nohup ./startTest.sh $jar_file #{ci_test_suite} &
+ ./startTest.sh $jar_file #{ci_test_suite} > #{tests_base}/target/startTest.out 2>&1
echo "return code from startTest.sh = [$?]"
EOH
timeout 72000
diff --git a/sdc-os-chef/sdc-sanity/startup.sh b/sdc-os-chef/sdc-sanity/startup.sh
index d4316c383f..e4edfc67e6 100644
--- a/sdc-os-chef/sdc-sanity/startup.sh
+++ b/sdc-os-chef/sdc-sanity/startup.sh
@@ -14,7 +14,7 @@ rc=$?
# exit 0
#fi
-while true; do sleep 2; done
+#while true; do sleep 2; done
##/docker-entrypoint.sh
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentBaseTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentBaseTest.java
index 6b0dc56357..01fad09d0d 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentBaseTest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentBaseTest.java
@@ -28,6 +28,7 @@ import com.thinkaurelius.titan.core.TitanFactory;
import com.thinkaurelius.titan.core.TitanGraph;
import com.thinkaurelius.titan.core.TitanVertex;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.ImmutableTriple;
import org.apache.log4j.Logger;
@@ -48,6 +49,7 @@ import org.openecomp.sdc.ci.tests.utils.Utils;
import org.openecomp.sdc.ci.tests.utils.cassandra.CassandraUtils;
import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
+import org.openecomp.sdc.ci.tests.utils.general.FileHandling;
import org.openecomp.sdc.ci.tests.utils.rest.*;
import org.slf4j.LoggerFactory;
import org.testng.ITestContext;
@@ -186,6 +188,10 @@ public abstract class ComponentBaseTest {
performClean();
shutdownTitanLogic();
+ String basePath = FileHandling.getBasePath();
+ String csarDir = FileHandling.getCreateDirByName("outputCsar");
+ FileUtils.cleanDirectory(new File(csarDir));
+
}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java
index 44e386ada6..4db35a2ce5 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/Onboard.java
@@ -24,8 +24,10 @@ package org.openecomp.sdc.ci.tests.sanity;
+import org.apache.http.HttpResponse;
import org.junit.Rule;
import org.junit.rules.TestName;
+import org.openecomp.sdc.be.datatypes.enums.AssetTypeEnum;
import org.openecomp.sdc.be.model.ComponentInstance;
import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
@@ -39,9 +41,14 @@ import org.openecomp.sdc.ci.tests.datatypes.VendorSoftwareProductObject;
import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+import org.openecomp.sdc.ci.tests.utils.CsarToscaTester;
import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
import org.openecomp.sdc.ci.tests.utils.general.OnboardingUtillViaApis;
+import org.openecomp.sdc.ci.tests.utils.rest.AssetRestUtils;
+import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper;
+import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
+import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
@@ -52,9 +59,10 @@ import com.clearspring.analytics.util.Pair;
import fj.data.Either;
-
-
-
+import java.io.File;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Map;
public class Onboard extends ComponentBaseTest {
@@ -68,6 +76,8 @@ public class Onboard extends ComponentBaseTest {
}
protected String makeDistributionValue;
+ protected ISdcCsarHelper fdntCsarHelper;
+ protected SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();
@@ -115,12 +125,30 @@ public class Onboard extends ComponentBaseTest {
ExtentTestActions.log(Status.INFO, String.format("Certify Service"));
service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
+
// ExtentTestActions.log(Status.INFO, String.format("Distribute Service"));
// AtomicOperationUtils.distributeService(service, true);
-
- ExtentTestActions.log(Status.INFO, String.format("The onboarding %s test is passed ! ", vnfFile));
- }
+ try{
+// HttpResponse assetResponse = AssetRestUtils.getComponentToscaModel(AssetTypeEnum.SERVICES, service.getUUID());
+// InputStream inputStream = assetResponse.getEntity().getContent();
+ File csarFile = AssetRestUtils.getToscaModelCsarFile(AssetTypeEnum.SERVICES, service.getUUID());
+
+ ExtentTestActions.log(Status.INFO, "Tosca parser is going to convert service csar file to ISdcCsarHelper object...");
+ fdntCsarHelper = factory.getSdcCsarHelper(csarFile.getAbsolutePath());
+ CsarToscaTester.processCsar(fdntCsarHelper);
+ ExtentTestActions.log(Status.INFO, String.format("Tosca parser successfully parsed service CSAR"));
+ ExtentTestActions.log(Status.INFO, String.format("The onboarding %s test is passed ! ", vnfFile));
+
+ }catch(Exception e){
+ ExtentTestActions.log(Status.ERROR, "Tosca parser FAILED to convert service csar file to ISdcCsarHelper object...");
+ ExtentTestActions.log(Status.FAIL, e);
+
+ }
+
+
+
+ }
}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java
new file mode 100644
index 0000000000..afdfa43d94
--- /dev/null
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java
@@ -0,0 +1,137 @@
+package org.openecomp.sdc.ci.tests.utils;
+
+import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper;
+import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
+import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory;
+import org.openecomp.sdc.tosca.parser.impl.SdcTypes;
+import org.openecomp.sdc.toscaparser.api.Group;
+import org.openecomp.sdc.toscaparser.api.NodeTemplate;
+import org.openecomp.sdc.toscaparser.api.elements.Metadata;
+import org.openecomp.sdc.toscaparser.api.parameters.Input;
+import org.openecomp.sdc.toscaparser.api.utils.ThreadLocalsHolder;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public class CsarToscaTester {
+ public static void main(String[] args) throws Exception {
+ System.out.println("CsarToscaParser - path to CSAR's Directory is " + Arrays.toString(args));
+ SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();
+
+ File folder = new File(args[0]);
+ File[] listOfFiles = folder.listFiles();
+ Date now = new Date();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("d-MM-y-HH_mm_ss");
+ String time = dateFormat.format(now);
+ String csarsDir = args[1] + "/csar-reports-" + time;
+ File dir = new File(csarsDir);
+ dir.mkdir();
+
+
+ for (File file : listOfFiles) {
+ if (file.isFile()) {
+ System.out.println("File " + file.getAbsolutePath());
+ String name = file.getName();
+ String currentCsarDir = csarsDir+"/"+name+"-"+time;
+ dir = new File(currentCsarDir);
+ dir.mkdir();
+ try {
+ processCsar(factory, file);
+ } catch (SdcToscaParserException e){
+ System.out.println("SdcToscaParserException caught. Code: "+e.getCode()+", message: "+ e.getMessage());
+ }
+ List<String> notAnalyzedReport = ThreadLocalsHolder.getCollector().getNotAnalyzedExceptionsReport();
+ System.out.println("NOT ANALYZED during CSAR parsing are: " + (notAnalyzedReport != null ? notAnalyzedReport.toString() : "none"));
+ List<String> warningsReport = ThreadLocalsHolder.getCollector().getWarningsReport();
+ //System.out.println("WARNINGS during CSAR parsing are: " + (warningsReport != null ? warningsReport.toString() : "none"));
+ List<String> criticalsReport = ThreadLocalsHolder.getCollector().getCriticalsReport();
+ System.out.println("CRITICALS during CSAR parsing are: " + (criticalsReport != null ? criticalsReport.toString() : "none"));
+
+ try {
+ generateReport(time, name, currentCsarDir, criticalsReport, "critical");
+ generateReport(time, name, currentCsarDir, warningsReport, "warning");
+ generateReport(time, name, currentCsarDir, notAnalyzedReport, "notAnalyzed");
+
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ }
+ }
+
+ public static void processCsar(SdcToscaParserFactory factory, File file) throws SdcToscaParserException {
+ ISdcCsarHelper sdcCsarHelper = factory.getSdcCsarHelper(file.getAbsolutePath());
+ processCsarImpl(sdcCsarHelper);
+
+ }
+
+ public static void processCsar(ISdcCsarHelper sdcCsarHelper) throws SdcToscaParserException {
+ processCsarImpl(sdcCsarHelper);
+
+ }
+
+ private static void processCsarImpl(ISdcCsarHelper sdcCsarHelper) {
+
+ //Service level
+ System.out.println("Invoking sdc-tosca methods on this CSAR....");
+ String conformanceLevel = sdcCsarHelper.getConformanceLevel();
+ System.out.println("getConformanceLevel() - conformance level is "+conformanceLevel);
+ String serviceSubstitutionMappingsTypeName = sdcCsarHelper.getServiceSubstitutionMappingsTypeName();
+ System.out.println("serviceSubstitutionMappingsTypeName() - subst mappings type of service is "+serviceSubstitutionMappingsTypeName);
+ List<Input> serviceInputs = sdcCsarHelper.getServiceInputs();
+ System.out.println("getServiceInputs() - service inputs are "+serviceInputs);
+ Metadata serviceMetadata = sdcCsarHelper.getServiceMetadata();
+ System.out.println("getServiceMetadata() - service metadata is "+serviceMetadata);
+ Map<String, Object> serviceMetadataProperties = sdcCsarHelper.getServiceMetadataProperties();
+ System.out.println("getServiceMetadataProperties() - service metadata properties is "+serviceMetadataProperties);
+ List<NodeTemplate> allottedResources = sdcCsarHelper.getAllottedResources();
+ System.out.println("getAllottedResources() - service allotted resources are "+allottedResources);
+ List<NodeTemplate> serviceVfList = sdcCsarHelper.getServiceVfList();
+ System.out.println("getServiceVfList() - VF list is "+serviceVfList);
+ List<NodeTemplate> serviceNodeTemplateBySdcType = sdcCsarHelper.getServiceNodeTemplateBySdcType(SdcTypes.VF);
+ System.out.println("getServiceNodeTemplateBySdcType() - VF list is "+serviceNodeTemplateBySdcType);
+ List<NodeTemplate> serviceNodeTemplates = sdcCsarHelper.getServiceNodeTemplates();
+ System.out.println("getServiceNodeTemplates() - all node templates list of service is "+serviceNodeTemplates);
+
+ serviceVfList.forEach(x -> {
+ String nodeTemplateCustomizationUuid = sdcCsarHelper.getNodeTemplateCustomizationUuid(x);
+ System.out.println("getNodeTemplateCustomizationUuid() - VF ID is "+nodeTemplateCustomizationUuid);
+ String typeOfNodeTemplate = sdcCsarHelper.getTypeOfNodeTemplate(x);
+ System.out.println("getTypeOfNodeTemplate() - VF tosca type is "+typeOfNodeTemplate);
+ List<Group> vfModulesByVf = sdcCsarHelper.getVfModulesByVf(nodeTemplateCustomizationUuid);
+ System.out.println("getVfModulesByVf() - VF modules list is "+vfModulesByVf);
+ vfModulesByVf.forEach(y -> {
+ List<NodeTemplate> membersOfVfModule = sdcCsarHelper.getMembersOfVfModule(x, y);
+ System.out.println("getMembersOfVfModule() - members of VfModule are "+membersOfVfModule);
+ });
+ List<NodeTemplate> vfcListByVf = sdcCsarHelper.getVfcListByVf(nodeTemplateCustomizationUuid);
+ System.out.println("getVfcListByVf() - VFC list is "+vfcListByVf);
+ vfcListByVf.forEach(z -> {
+ List<NodeTemplate> nodeTemplateBySdcType = sdcCsarHelper.getNodeTemplateBySdcType(z, SdcTypes.CP);
+ System.out.println("getNodeTemplateBySdcType() - CP children node templates of this VFC are "+nodeTemplateBySdcType);
+ Map<String, Map<String, Object>> cpPropertiesFromVfcAsObject = sdcCsarHelper.getCpPropertiesFromVfcAsObject(z);
+ System.out.println("getCpPropertiesFromVfcAsObject() - consolidated CP properties for this VFC are "+cpPropertiesFromVfcAsObject);
+ boolean hasTopology = sdcCsarHelper.hasTopology(z);
+ System.out.println("hasTopology() - this VFC is "+(hasTopology ? "nested" : "not nested"));
+ });
+ });
+ }
+
+ private static void generateReport(String time, String name, String currentCsarDir, List<String> criticalsReport, String type)
+ throws IOException {
+ FileWriter fw;
+ fw = new FileWriter(new File(currentCsarDir + "/" + criticalsReport.size() + "-"+type+"-" + name +"-"+time + ".txt"));
+ for (String exception : criticalsReport) {
+ fw.write(exception);
+ fw.write("\r\n");
+ }
+ fw.close();
+ }
+}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java
index c8f9ee4139..2c5d985aa5 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/FileHandling.java
@@ -390,6 +390,15 @@ public class FileHandling {
//
// }
// }
+
+ public static String getCreateDirByName(String dirName) {
+ File dir = new File(dirName);
+ dir.mkdir();
+ if(!dir.exists()) {
+ }
+
+ return dir.getPath();
+ }
public static boolean isFileDownloaded(String downloadPath, String fileName) {
boolean flag = false;
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java
index 13a56417e8..7bcf33801a 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java
@@ -26,10 +26,7 @@ import static org.testng.AssertJUnit.assertTrue;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.Map.Entry;
import org.apache.http.HttpEntity;
@@ -62,6 +59,7 @@ import org.openecomp.sdc.ci.tests.datatypes.http.HttpRequest;
import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
import org.openecomp.sdc.ci.tests.utils.Utils;
import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
+import org.openecomp.sdc.ci.tests.utils.general.FileHandling;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -105,7 +103,9 @@ public class AssetRestUtils extends BaseRestUtils {
String url = String.format(Urls.GET_TOSCA_MODEL, config.getCatalogBeHost(), config.getCatalogBePort(),
assetType.getValue(), uuid);
HttpGet httpGet = new HttpGet(url);
- File myFile = new File("tmpCSAR");
+
+ String csarDir = FileHandling.getCreateDirByName("outputCsar");
+ File myFile = new File(csarDir+ File.separator + "tmpCSAR" + getShortUUID()+".csar");
httpGet.addHeader(HttpHeaderEnum.X_ECOMP_INSTANCE_ID.getValue(), "ci");
@@ -123,7 +123,9 @@ public class AssetRestUtils extends BaseRestUtils {
}
return myFile;
}
-
+
+
+
public static RestResponse getRestResponseComponentToscaModel(AssetTypeEnum assetType, String uuid) throws IOException {
Config config = Utils.getConfig();
@@ -622,5 +624,8 @@ public class AssetRestUtils extends BaseRestUtils {
}
return null;
}
+ private static String getShortUUID() {
+ return UUID.randomUUID().toString().split("-")[0];
+ }
}
diff --git a/test-apis-ci/src/main/resources/ci/testSuites/onap.xml b/test-apis-ci/src/main/resources/ci/testSuites/onap.xml
index c075f10b11..1d5bc4b1bf 100644
--- a/test-apis-ci/src/main/resources/ci/testSuites/onap.xml
+++ b/test-apis-ci/src/main/resources/ci/testSuites/onap.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="externalApis" configfailurepolicy="continue" verbose="2" parallel="methods" thread-count="2" data-provider-thread-count="2">
+<suite name="externalApis" configfailurepolicy="continue" verbose="2" parallel="methods" thread-count="1" data-provider-thread-count="1">
<test name="ExternalApis">
<classes>