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 --- .../sdc/asdctool/main/SdcSchemaFileImport.java | 54 ++++++++++++++-------- 1 file changed, 35 insertions(+), 19 deletions(-) (limited to 'asdctool/src/main') 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); } } -- cgit 1.2.3-korg