From 9a6c8fc028db1e94c873300ec14211b7beb5c78a Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Mon, 11 Jun 2018 13:26:35 +0300 Subject: update sdc logic for new types update sdc conformance level and add logic to package onap normatives. Change-Id: I321eeb0cccf662346eb36cb42420fd8fca72ae32 Issue-ID: SDC-1380 Signed-off-by: Michael Lando --- asdctool/pom.xml | 115 +++++++------------- .../recipes/04-importComformance.rb | 2 +- .../templates/default/configuration.yaml.erb | 119 ++++++++++++++++----- .../sdc/asdctool/main/SdcSchemaFileImport.java | 54 ++++++---- .../sdc/asdctool/main/SdcSchemaFileImportTest.java | 9 +- 5 files changed, 177 insertions(+), 122 deletions(-) (limited to 'asdctool') diff --git a/asdctool/pom.xml b/asdctool/pom.xml index 4fd16cc30b..ce64b7fc1b 100644 --- a/asdctool/pom.xml +++ b/asdctool/pom.xml @@ -552,6 +552,46 @@ ${project.artifactId}-${project.version}-jar-with-dependencies + + maven-clean-plugin + 3.0.0 + + + clean-static-files + clean + + clean + + + + + + ${project.parent.basedir}/asdctool/tosca + false + + + ${project.basedir}/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/attributes/ + false + + **/default.rb + + + + ${project.basedir}/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/files/default/tools + false + + + ${project.basedir}/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/files/default + false + + **/sdctool.tar + + + + + + + org.apache.maven.plugins @@ -617,47 +657,6 @@ - - - maven-clean-plugin - 3.0.0 - - - clean-static-files - clean - - clean - - - - - - ${project.parent.basedir}/asdctool/tosca - false - - - ${project.basedir}/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/attributes/ - false - - **/default.rb - - - - ${project.basedir}/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/files/default/tools - false - - - ${project.basedir}/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/files/default - false - - **/sdctool.tar - - - - - - - ru.yaal.maven write-text-files-maven-plugin @@ -690,7 +689,6 @@ maven-resources-plugin 3.0.2 - copy-tosca-folder @@ -708,19 +706,11 @@ - - - docker-staging - - ${project.version}-STAGING-${maven.build.timestamp} - ${project.version}-STAGING-latest - - docker @@ -732,30 +722,6 @@ maven-resources-plugin 3.0.2 - - copy-dox-files - verify - - copy-resources - - - ${basedir}/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/files/default - - - ${project.parent.basedir}/openecomp-be - - tools/build/** - - - - ${project.parent.basedir}/openecomp-be - - tools/install/** - - - - - copy-sdctool verify @@ -780,7 +746,6 @@ io.fabric8 docker-maven-plugin ${fabric8.version} - true 1.23 diff --git a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/04-importComformance.rb b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/04-importComformance.rb index 3b293e88b9..6841175902 100644 --- a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/04-importComformance.rb +++ b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/recipes/04-importComformance.rb @@ -14,7 +14,7 @@ bash "import-Comformance" do cd /tmp/sdctool/scripts /bin/chmod +x sdcSchemaFileImport.sh - echo "execute /tmp/sdctool/scripts/sdcSchemaFileImport.sh ${tosca_dir} #{cl_release} ${cl_version} ${conf_dir} " + echo "execute /tmp/sdctool/scripts/sdcSchemaFileImport.sh ${tosca_dir} #{cl_release} ${cl_version} ${conf_dir} onap" ./sdcSchemaFileImport.sh ${tosca_dir} #{cl_release} ${cl_version} ${conf_dir} EOH end \ No newline at end of file diff --git a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb index 75a5d756c3..d6e4c11b11 100644 --- a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb +++ b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb @@ -16,13 +16,17 @@ beHttpPort: <%= @catalog_port %> beContext: /sdc/rest/config/get # catalog backend protocol +<% if node[:disableHttp] -%> +beProtocol: https +<% else %> beProtocol: http +<% end -%> # catalog backend ssl port beSslPort: <%= @ssl_port %> version: 1.0 released: 2012-11-30 -toscaConformanceLevel: 5.0 +toscaConformanceLevel: 10.0 minToscaConformanceLevel: 3.0 titanCfgFile: <%= @titan_Path %>/titan.properties @@ -130,6 +134,7 @@ artifactTypes: - SNMP_POLL - SNMP_TRAP - GUIDE + - PLAN licenseTypes: - User @@ -146,23 +151,9 @@ resourceTypes: &allResourceTypes - Abstract - CVFC -# validForResourceTypes usage -# validForResourceTypes: -# - VF -# - VL + deploymentResourceArtifacts: -# heat: -# displayName: "Base HEAT Template" -# type: HEAT -# validForResourceTypes: *allResourceTypes -# heatVol: -# displayName: "Volume HEAT Template" -# type: HEAT_VOL -# validForResourceTypes: *allResourceTypes -# heatNet: -# displayName: "Network HEAT Template" -# type: HEAT_NET -# validForResourceTypes: *allResourceTypes + deploymentResourceInstanceArtifacts: heatEnv: @@ -193,7 +184,7 @@ toscaArtifacts: excludeResourceCategory: - Generic excludeResourceType: - - PNF + - PNF informationalResourceArtifacts: features: displayName: Features @@ -283,7 +274,7 @@ serviceApiArtifacts: additionalInformationMaxNumberOfKeys: 50 systemMonitoring: - enabled: true + enabled: false isProxy: false probeIntervalInSeconds: 15 @@ -302,9 +293,6 @@ serviceDeploymentArtifacts: MODEL_QUERY_SPEC: acceptedTypes: - xml - UCPE_LAYER_2_CONFIGURATION: - acceptedTypes: - - xml #AAI Artifacts AAI_SERVICE_MODEL: @@ -316,9 +304,17 @@ serviceDeploymentArtifacts: AAI_VF_INSTANCE_MODEL: acceptedTypes: - xml + UCPE_LAYER_2_CONFIGURATION: + acceptedTypes: + - xml OTHER: acceptedTypes: +#PLAN + PLAN: + acceptedTypes: + - xml + resourceDeploymentArtifacts: HEAT: acceptedTypes: @@ -436,6 +432,14 @@ resourceDeploymentArtifacts: acceptedTypes: validForResourceTypes: *allResourceTypes +#PLAN + PLAN: + acceptedTypes: + - xml + validForResourceTypes: + - VF + - VFC + resourceInstanceDeploymentArtifacts: HEAT_ENV: acceptedTypes: @@ -473,6 +477,11 @@ resourceInstanceDeploymentArtifacts: acceptedTypes: validForResourceTypes: *allResourceTypes +#PLAN + PLAN: + acceptedTypes: + - xml + resourceInformationalArtifacts: CHEF: acceptedTypes: @@ -503,7 +512,7 @@ resourceInformationalArtifacts: validForResourceTypes: *allResourceTypes OTHER: acceptedTypes: - validForResourceTypes: + validForResourceTypes: - VFC - CVFC - CP @@ -583,9 +592,9 @@ applicationL1Cache: pollIntervalInSec: 60 applicationL2Cache: - enabled: true + enabled: false catalogL1Cache: - enabled: true + enabled: false resourcesSizeInCache: 300 servicesSizeInCache: 200 productsSizeInCache: 100 @@ -637,4 +646,62 @@ environmentContext: - Important_Non-Revenue - Needed_Non-Revenue - Useful_Non-Revenue - - General_Non-Revenue \ No newline at end of file + - General_Non-Revenue + +dmaapConsumerConfiguration: + hosts: localhost:3905 + consumerGroup: sdc + consumerId: mama + timeoutMs: 15000 + limit: 1 + pollingInterval: 2 + topic: topic + latitude: 32.109333 + longitude: 34.855499 + version: 1.0 + serviceName: localhost/events + environment: TEST + partner: BOT_R + routeOffer: MR1 + protocol: https + contenttype: application/json + dme2TraceOn: true + aftEnvironment: AFTUAT + aftDme2ConnectionTimeoutMs: 15000 + aftDme2RoundtripTimeoutMs: 240000 + aftDme2ReadTimeoutMs: 50000 + dme2preferredRouterFilePath: DME2preferredRouter.txt + timeLimitForNotificationHandleMs: 120000 + credential: + username: user + password: + +dmeConfiguration: + dme2Search: DME2SEARCH + dme2Resolve: DME2RESOLVE + +excludedPolicyTypesMapping: + # VF: + # - a.b.c + # - c.d.e + #CR: + # - x.y.z + +excludedGroupTypesMapping: + CR: + - org.openecomp.groups.VfModule + - org.openecomp.groups.heat.HeatStack + - tosca.groups.Root + VF: + - org.openecomp.groups.VfModule + - org.openecomp.groups.heat.HeatStack + - tosca.groups.Root + Service: + - org.openecomp.groups.VfModule + - org.openecomp.groups.heat.HeatStack + - tosca.groups.Root + +healthStatusExclude: + - DE + - DMAPP + - DCAE diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java index 0e545f2afd..e915d27502 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImport.java @@ -36,6 +36,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.ArrayUtils; import org.openecomp.sdc.asdctool.enums.SchemaZipFileEnum; import org.openecomp.sdc.asdctool.impl.EsToCassandraDataMigrationConfig; import org.openecomp.sdc.be.config.ConfigurationManager; @@ -53,16 +54,16 @@ import org.yaml.snakeyaml.Yaml; public class SdcSchemaFileImport { private static final String SEPARATOR = FileSystems.getDefault().getSeparator(); - - private static SdcSchemaFilesCassandraDao schemaFilesCassandraDao; private static final String TOSCA_VERSION = "tosca_simple_yaml_1_1"; private static String importToscaPath; - private static byte[] buffer = new byte[1024]; + private static final byte[] buffer = new byte[1024]; - private static String YAML_EXTENSION = ".yml"; + private static final String YAML_EXTENSION = ".yml"; + + private static final String DEPLOYMENT_TYPE_ONAP = "onap"; private static String LICENSE_TXT; @@ -74,7 +75,7 @@ public class SdcSchemaFileImport { System.out.println("Starting SdcSchemaFileImport procedure..."); final String FILE_NAME = "SDC.zip"; - if (args == null || args.length < 4) { + if (args == null || !(args.length ==4 || args.length == 5 )) { usageAndExit(); } @@ -82,6 +83,11 @@ public class SdcSchemaFileImport { String sdcReleaseNum = args[1]; String conformanceLevel = args[2]; String appConfigDir = args[3]; + String deploymentType=null; + if(args.length==5){ + deploymentType=args[4]; + } + ByteArrayOutputStream baos = new ByteArrayOutputStream(); @@ -116,7 +122,7 @@ public class SdcSchemaFileImport { } } - createAndSaveNodeSchemaFile(); + createAndSaveNodeSchemaFile(deploymentType); try { //close the ZipOutputStream @@ -128,10 +134,10 @@ public class SdcSchemaFileImport { System.exit(1); } - //Generation flow end - generating SDC from normatives + //Generation flow end - generating SDC from narratives AnnotationConfigApplicationContext context = initContext(appConfigDir); - schemaFilesCassandraDao = (SdcSchemaFilesCassandraDao) context.getBean("sdc-schema-files-cassandra-dao"); + SdcSchemaFilesCassandraDao schemaFilesCassandraDao = (SdcSchemaFilesCassandraDao) context.getBean("sdc-schema-files-cassandra-dao"); byte[] fileBytes = baos.toByteArray(); @@ -166,7 +172,7 @@ public class SdcSchemaFileImport { yaml.setName(fileName); //Initialize the yaml contents - Map data = new LinkedHashMap(); + Map data = new LinkedHashMap<>(); data.put("tosca_definitions_version", TOSCA_VERSION); @@ -199,29 +205,40 @@ public class SdcSchemaFileImport { zos.write(buffer, 0, len); } //close the InputStream - stream.close(); + file.delete(); + stream.close(); zos.closeEntry(); - file.delete(); + } catch (IOException e) { System.out.println("Error in file creation : " + fileName + ", " + e.getMessage()); System.exit(1); } } - - public static void createAndSaveNodeSchemaFile() throws IOException { + + /** + *the method is responsible for creating and storing the sdc normatives in the DB + * @param deploymentType if the deployments type is onap the onap narratives will be add to the zip + * @throws IOException thrown in case of issues in reding files. + */ + public static void createAndSaveNodeSchemaFile(String deploymentType) throws IOException { //Initialize the snake yaml dumper option DumperOptions options = new DumperOptions(); options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); - Map nodeTypeList = new LinkedHashMap(); + Map nodeTypeList = new LinkedHashMap<>(); String[] importFileList = new String[]{"data.yml", "artifacts.yml", "capabilities.yml", "interfaces.yml", "relationships.yml"}; String collectionTitle = "node_types"; //Create node.yaml - collect all types from normative-types and heat-types directories String[] nodeTypesMainFolders = new String[]{"normative-types", "heat-types"}; + + if(DEPLOYMENT_TYPE_ONAP.equals(deploymentType)){ + String[] onapNodeTypesMainFolders = new String[]{"nfv-types"}; + nodeTypesMainFolders=ArrayUtils.addAll(nodeTypesMainFolders,onapNodeTypesMainFolders); + } for (String nodeTypesMainFolder : nodeTypesMainFolders) { Files.walk(Paths.get(importToscaPath + SEPARATOR + nodeTypesMainFolder)) @@ -232,7 +249,7 @@ public class SdcSchemaFileImport { System.out.println("Processing node type file "+path+"..."); FileInputStream inputStream = new FileInputStream(path); Yaml yaml = new Yaml(); - Map load = (Map) yaml.load(inputStream); + Map load = yaml.loadAs(inputStream,Map.class); Map nodeType = (Map) load.get(collectionTitle); nodeTypeList.putAll(nodeType); @@ -251,13 +268,12 @@ public class SdcSchemaFileImport { } private static void SdcSchemaFileImportUsage() { - System.err.println("Usage: "); + System.err.println("Usage: "); } private static AnnotationConfigApplicationContext initContext(String appConfigDir) { ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(EsToCassandraDataMigrationConfig.class); - return context; + new ConfigurationManager(configurationSource); + return new AnnotationConfigApplicationContext(EsToCassandraDataMigrationConfig.class); } } diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImportTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImportTest.java index 2f5dababb7..791aeb922d 100644 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImportTest.java +++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/main/SdcSchemaFileImportTest.java @@ -15,7 +15,14 @@ public class SdcSchemaFileImportTest { public void testCreateAndSaveNodeSchemaFile() throws Exception { // default test - SdcSchemaFileImport.createAndSaveNodeSchemaFile(); + SdcSchemaFileImport.createAndSaveNodeSchemaFile(""); + } + + @Test(expected=NoSuchFileException.class) + public void testCreateAndSaveNodeSchemaFileOnap() throws Exception { + + // default test + SdcSchemaFileImport.createAndSaveNodeSchemaFile("onap"); } @Test(expected=NullPointerException.class) -- cgit 1.2.3-korg