\r
private static String POST_FLAG;\r
\r
+ private static String URL_FlAG;\r
+\r
@Autowired\r
private DesignRepository designRepository;\r
\r
\r
switch (designTypeEnum) {\r
case KIBANA_DB:\r
- resultMap = deployKibanaImport(design);\r
- if (!resultMap.isEmpty()) {\r
- Iterator<Map.Entry<Integer, Boolean>> it = resultMap.entrySet().iterator();\r
- while (it.hasNext()) {\r
- Map.Entry<Integer, Boolean> entry = it.next();\r
- if (entry.getValue()) {\r
- design.setSubmitted(true);\r
- designRepository.save(design);\r
- }\r
- }\r
- }\r
+ log.info("Deploy kibana dashboard");\r
+ resultMap = deployKibanaDashboardImport(design);\r
+ deploySave(resultMap, design);\r
+ break;\r
case ES_MAPPING:\r
- //FIXME\r
- //return postEsMappingTemplate(design, design.getTopicName().getId().toLowerCase());\r
+ log.info("Deploy elasticsearch mapping template");\r
+ resultMap = postEsMappingTemplate(design, design.getTopicName().getId().toLowerCase());\r
+ deploySave(resultMap, design);\r
+ break;\r
default:\r
log.error("Not implemented {}", designTypeEnum);\r
+ break;\r
}\r
+ log.info("Response resultMap: " + resultMap);\r
return resultMap;\r
}\r
\r
- private Map<Integer, Boolean> deployKibanaImport(Design design) {\r
+ private Map<Integer, Boolean> deployKibanaDashboardImport(Design design) {\r
+ URL_FlAG = "Kibana";\r
POST_FLAG = "KibanaDashboardImport";\r
String requestBody = design.getBody();\r
Set<Db> dbs = design.getDbs();\r
- Map<Integer, Boolean> deployMap = new HashMap<>();\r
+ Map<Integer, Boolean> deployKibanaMap = new HashMap<>();\r
\r
if (!dbs.isEmpty()) {\r
- Map<Integer, String> map = new HashMap<>();\r
- for (Db item : dbs) {\r
- if (item.isEnabled()) {\r
- map.put(item.getId(), kibanaImportUrl(item.getHost(), item.getPort()));\r
- }\r
- }\r
+ Map<Integer, String> map = urlMap(dbs, URL_FlAG);\r
+ log.info("Deploy kibana dashboard url map: " + map);\r
if (!map.isEmpty()) {\r
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();\r
while (it.hasNext()) {\r
Map.Entry<Integer, String> entry = it.next();\r
- deployMap.put(entry.getKey(), HttpClientUtil.sendPostKibana(entry.getValue(), requestBody, POST_FLAG));\r
+ deployKibanaMap.put(entry.getKey(), HttpClientUtil.sendHttpClientPost(entry.getValue(), requestBody, POST_FLAG, URL_FlAG));\r
}\r
}\r
- return deployMap;\r
+ return deployKibanaMap;\r
} else {\r
- return deployMap;\r
- }\r
- }\r
-\r
- private String kibanaImportUrl(String host, Integer port) {\r
- if (port == null) {\r
- port = applicationConfiguration.getKibanaPort();\r
+ return deployKibanaMap;\r
}\r
- return "http://" + host + ":" + port + applicationConfiguration.getKibanaDashboardImportApi();\r
}\r
\r
/**\r
* @param templateName\r
* @return flag\r
*/\r
- public boolean postEsMappingTemplate(Design design, String templateName) {\r
+ public Map<Integer, Boolean> postEsMappingTemplate(Design design, String templateName) {\r
+ URL_FlAG = "Elasticsearch";\r
POST_FLAG = "ElasticsearchMappingTemplate";\r
String requestBody = design.getBody();\r
-\r
- //FIXME\r
Set<Db> dbs = design.getDbs();\r
- //submit to each ES in dbs\r
+ Map<Integer, Boolean> deployEsMap = new HashMap<>();\r
\r
- //return HttpClientUtil.sendPostHttpClient("http://"+dbService.getElasticsearch().getHost()+":9200/_template/"+templateName, requestBody, POST_FLAG);\r
- return false;\r
+ if (!dbs.isEmpty()) {\r
+ Map<Integer, String> map = urlMap(dbs, URL_FlAG);\r
+ log.info("Deploy elasticsearch url map: " + map);\r
+ if (!map.isEmpty()) {\r
+ Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();\r
+ while (it.hasNext()) {\r
+ Map.Entry<Integer, String> entry = it.next();\r
+ deployEsMap.put(entry.getKey(), HttpClientUtil.sendHttpClientPost(entry.getValue()+templateName, requestBody, POST_FLAG, URL_FlAG));\r
+ }\r
+ }\r
+ return deployEsMap;\r
+ } else {\r
+ return deployEsMap;\r
+ }\r
+ }\r
+\r
+ private Map<Integer, String> urlMap (Set<Db> dbs, String flag) {\r
+ Map<Integer, String> map = new HashMap<>();\r
+ for (Db item : dbs) {\r
+ if (item.isEnabled()) {\r
+ map.put(item.getId(), httpRequestUrl(item.getHost(), item.getPort(), flag));\r
+ }\r
+ }\r
+ return map;\r
+ }\r
+\r
+ private String httpRequestUrl(String host, Integer port, String urlFlag) {\r
+ String url = "";\r
+ switch (urlFlag) {\r
+ case "Kibana":\r
+ if (port == null) {\r
+ port = applicationConfiguration.getKibanaPort();\r
+ }\r
+ url = "http://" + host + ":" + port + applicationConfiguration.getKibanaDashboardImportApi();\r
+ log.info("Kibana url: " + url);\r
+ break;\r
+ case "Elasticsearch":\r
+ if (port == null) {\r
+ port = applicationConfiguration.getEsPort();\r
+ }\r
+ url = "http://" + host + ":" + port + applicationConfiguration.getEsTemplateMappingApi();\r
+ log.info("Elasticsearch url: " + url);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return url;\r
+ }\r
+\r
+ private void deploySave(Map<Integer, Boolean> map, Design design) {\r
+ if (!map.isEmpty()) {\r
+ Iterator<Map.Entry<Integer, Boolean>> it = map.entrySet().iterator();\r
+ while (it.hasNext()) {\r
+ Map.Entry<Integer, Boolean> entry = it.next();\r
+ if (entry.getValue()) {\r
+ design.setSubmitted(true);\r
+ designRepository.save(design);\r
+ log.info("Status was modified");\r
+ }\r
+ }\r
+ }\r
}\r
\r
}\r
private static final Logger log = LoggerFactory.getLogger(HttpClientUtil.class);
+ private static final String KIBANA = "Kibana";
+
private static final String KIBANA_DASHBOARD_IMPORT = "KibanaDashboardImport";
private static final String ELASTICSEARCH_MAPPING_TEMPLATE = "ElasticsearchMappingTemplate";
throw new IllegalStateException("Utility class");
}
- public static boolean sendPostKibana(String url, String json, String postFlag) {
+ public static boolean sendHttpClientPost(String url, String json, String postFlag, String urlFlag) {
boolean flag = false;
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
- headers.add("kbn-xsrf","true");
+ if (urlFlag.equals(KIBANA)) {
+ log.info("urlFlag is Kibana, add header");
+ headers.add("kbn-xsrf","true");
+ }
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
HttpEntity<String> request = new HttpEntity<>(json, headers);
ResponseEntity<String> responseEntity = null;
break;
}
} catch (Exception e) {
- log.debug(e.getMessage());
+ log.debug("Resquest failed: " + e.getMessage());
}
return flag;
}