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