1 package org.openecomp.sdc.asdctool.simulator.tenant;
3 import java.io.FileNotFoundException;
4 import java.io.FileReader;
5 import java.text.ParseException;
6 import java.text.SimpleDateFormat;
8 import java.util.stream.Collectors;
10 import org.openecomp.sdc.be.dao.cassandra.OperationalEnvironmentDao;
11 import org.openecomp.sdc.be.dao.cassandra.schema.Table;
12 import org.openecomp.sdc.be.resources.data.OperationalEnvironmentEntry;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
15 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
17 import com.opencsv.bean.CsvToBeanBuilder;
20 * Imports CSV file into
21 * Example of line in the file
22 * 00002,135.42.43.45:5757,Context,FALSE,2017-10-11 12:02:01,INITIAL,personal tenant,abcd123456789,bbbbbbbbbbb
23 * Date format is fixed: yyyy-MM-dd HH:mm:ss
27 public class OperationalEvnironmentImportHandler {
28 private static final Logger LOGGER = LoggerFactory.getLogger(OperationalEvnironmentImportHandler.class);
29 private static final String TABLE_NAME = Table.SDC_OPERATIONAL_ENVIRONMENT.getTableDescription().getTableName();
31 private OperationalEvnironmentImportHandler() {
35 public static void execute(String fileName) {
37 List<OperationalEnvironment> beans = new CsvToBeanBuilder<OperationalEnvironment>(new FileReader(fileName))
38 .withType(OperationalEnvironment.class).build().parse();
40 List<OperationalEnvironmentEntry> entries = map(beans);
42 LOGGER.info("File {} has been successfully imported into the [{}] table.", fileName, TABLE_NAME);
43 } catch (IllegalStateException | FileNotFoundException e) {
44 String errorMessage = String.format("Failed to import file: %s into the [%s] table ", fileName, TABLE_NAME);
45 LOGGER.error(errorMessage, e);
49 private static List<OperationalEnvironmentEntry> map(List<OperationalEnvironment> beans) {
51 .map(OperationalEvnironmentImportHandler::map)
52 .collect(Collectors.toList());
56 private static OperationalEnvironmentEntry map(OperationalEnvironment perationalEnvironment) {
57 OperationalEnvironmentEntry entry = new OperationalEnvironmentEntry();
59 entry.setEnvironmentId(perationalEnvironment.getEnvironmentId());
60 entry.addDmaapUebAddress(perationalEnvironment.getDmaapUebAddress());
61 entry.setEcompWorkloadContext(perationalEnvironment.getEcompWorkloadContext());
62 entry.setIsProduction(perationalEnvironment.getIsProduction());
64 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
66 entry.setLastModified(formatter.parse(perationalEnvironment.getLastModified()));
67 } catch (ParseException e) {
68 LOGGER.error("Faild to pase Date, expected format is [yyyy-MM-dd HH:mm:ss].", e);
69 throw new RuntimeException(e);
72 entry.setStatus(perationalEnvironment.getStatus());
73 entry.setTenant(perationalEnvironment.getTenant());
74 entry.setUebApikey(perationalEnvironment.getUebApikey());
75 entry.setUebSecretKey(perationalEnvironment.getUebSecretKey());
81 private static OperationalEnvironmentDao createDaoObj() {
82 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ImportTableConfig.class);
83 return (OperationalEnvironmentDao) context.getBean("operational-environment-dao");
86 private static void modifyDb(List<OperationalEnvironmentEntry> environments) {
87 OperationalEnvironmentDao daoObj = createDaoObj();
91 environments.forEach(daoObj::save);
94 public static String getTableName() {