1 package org.openecomp.portalapp.widget.service.impl;
 
   4 import java.io.FileOutputStream;
 
   5 import java.io.InputStream;
 
   6 import java.io.OutputStream;
 
   7 import java.util.HashSet;
 
   9 import javax.transaction.Transactional;
 
  11 import org.openecomp.portalapp.widget.controller.WidgetsCatalogController;
 
  12 import org.openecomp.portalapp.widget.domain.MicroserviceData;
 
  13 import org.openecomp.portalapp.widget.domain.MicroserviceParameter;
 
  14 import org.openecomp.portalapp.widget.domain.RoleApp;
 
  15 import org.openecomp.portalapp.widget.domain.WidgetCatalog;
 
  16 import org.openecomp.portalapp.widget.service.InitializationService;
 
  17 import org.openecomp.portalapp.widget.service.MicroserviceService;
 
  18 import org.openecomp.portalapp.widget.service.StorageService;
 
  19 import org.openecomp.portalapp.widget.service.WidgetCatalogService;
 
  20 import org.slf4j.Logger;
 
  21 import org.slf4j.LoggerFactory;
 
  22 import org.springframework.beans.factory.annotation.Autowired;
 
  23 import org.springframework.beans.factory.annotation.Value;
 
  24 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 
  25 import org.springframework.stereotype.Service;
 
  27 @Service("initService")
 
  29 @org.springframework.context.annotation.Configuration
 
  30 @EnableAspectJAutoProxy
 
  31 public class InitializationServiceImpl implements InitializationService{
 
  33         private static final String BASIC_AUTH = "Basic Authentication";
 
  34         private static final String PARAMETER_KEY = "resourceType";
 
  35         private static final Logger logger = LoggerFactory.getLogger(WidgetsCatalogController.class);
 
  38         WidgetCatalogService widgetCatalogService;
 
  41         StorageService storageService;
 
  44         MicroserviceService microserviceService;
 
  46         @Value("${account.user.name}")
 
  49         @Value("${account.user.password}")
 
  50         String account_password;
 
  52         @Value("${initialization.widgetData.url}")
 
  53         String widgetData_url;
 
  56         public void initialize() {
 
  57                 initCommonWidget("News");
 
  58                 initCommonWidget("Events");
 
  59                 initCommonWidget("Resources");
 
  62         private void initCommonWidget(String name){
 
  64                 final String newServiceName = name + " Microservice";
 
  65                 final String newWidgetName = name + " Widget";
 
  67                 Long serviceId = microserviceService.getMicroserviceIdByName(newServiceName);
 
  69                 if(serviceId == null){
 
  70                         MicroserviceData newService = new MicroserviceData();
 
  71                         newService.setName(newServiceName);
 
  72                         newService.setDesc(name);
 
  73                         newService.setAppId(1);
 
  74                         newService.setUrl(widgetData_url);
 
  75                         newService.setSecurityType(BASIC_AUTH);
 
  76                         newService.setUsername(account_user);
 
  77                         newService.setPassword(account_password);
 
  78                         newService.setActive("Y");
 
  79                         serviceId = microserviceService.saveMicroserivce(newService);
 
  82                         MicroserviceParameter parameter = new MicroserviceParameter();
 
  83                         parameter.setServiceId(serviceId);
 
  84                         parameter.setPara_key(PARAMETER_KEY);
 
  85                         String parameter_value = null;
 
  86                         switch(name.toLowerCase()){
 
  88                                         parameter_value = "NEWS";
 
  91                                         parameter_value = "EVENTS";
 
  94                                         parameter_value = "IMPORTANTRESOURCES";
 
  97                         parameter.setPara_value(parameter_value);
 
  98                         microserviceService.saveMicroserviceParameter(parameter);
 
 101                 if(!widgetCatalogService.getWidgetIdByName(newWidgetName)){
 
 102                         WidgetCatalog newWidget = new WidgetCatalog();
 
 103                         newWidget.setName(newWidgetName);
 
 104                         newWidget.setDesc(name);
 
 105                         newWidget.setAllowAllUser("1");
 
 106                         String fileLocation = name.toLowerCase() + "-widget.zip";
 
 107                         newWidget.setFileLocation(fileLocation);
 
 108                         newWidget.setServiceId(serviceId);
 
 109                         newWidget.setWidgetRoles(new HashSet<RoleApp>());
 
 110                         long widgetId = widgetCatalogService.saveWidgetCatalog(newWidget);
 
 112                         File file = new File("/tmp/" + fileLocation);
 
 115                                 InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream(fileLocation);
 
 116                                 OutputStream outputStream = new FileOutputStream(file);
 
 118                                 byte[] bytes = new byte[4096];
 
 119                                 while ((read = fileInputStream.read(bytes)) != -1) {
 
 120                                         outputStream.write(bytes, 0, read);
 
 123                                 logger.error("Exception occurred while performing InitializationServiceImpl.initCommonWidget in widget microservices. Details:" + e.getMessage());
 
 125                         storageService.initSave(file, newWidget, widgetId);