1 package org.onap.ccsdk.sli.core.sliapi.springboot;
3 import com.fasterxml.jackson.databind.ObjectMapper;
4 import com.google.gson.*;
5 import org.onap.ccsdk.sli.core.sli.*;
6 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicClassResolver;
7 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicPropertiesProviderImpl;
8 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
9 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicServiceImpl;
10 import org.onap.ccsdk.sli.core.sli.provider.base.InMemorySvcLogicStore;
11 import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicPropertiesProvider;
12 import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicResolver;
13 import org.onap.ccsdk.sli.core.sliapi.model.ExecuteGraphInput;
14 import org.onap.ccsdk.sli.core.sliapi.model.HealthcheckInput;
15 import org.onap.ccsdk.sli.core.sliapi.model.ResponseFields;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18 import org.springframework.boot.SpringApplication;
19 import org.springframework.http.HttpStatus;
20 import org.springframework.http.ResponseEntity;
21 import org.springframework.stereotype.Controller;
22 import javax.servlet.http.HttpServletRequest;
23 import javax.validation.Valid;
24 import java.io.IOException;
25 import java.util.HashMap;
27 import java.util.Optional;
28 import java.util.Properties;
30 @javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2020-02-20T12:50:11.207-05:00")
33 public class RestconfApiController implements RestconfApi {
35 private final ObjectMapper objectMapper;
37 private final HttpServletRequest request;
39 private static SvcLogicService svc;
40 Logger log = LoggerFactory.getLogger(RestconfApiController.class);
42 @org.springframework.beans.factory.annotation.Autowired
43 public RestconfApiController(ObjectMapper objectMapper, HttpServletRequest request) {
44 this.objectMapper = objectMapper;
45 this.request = request;
47 SvcLogicPropertiesProvider propProvider = new SvcLogicPropertiesProviderImpl();
48 SvcLogicStore store = null;
50 store = SvcLogicStoreFactory.getSvcLogicStore(propProvider.getProperties());
51 } catch (SvcLogicException e) {
52 log.error("Cannot create SvcLogicStore", e);
56 String serviceLogicDirectory = System.getProperty("serviceLogicDirectory");
57 System.out.println("serviceLogicDirectory is "+serviceLogicDirectory);
58 SvcLogicLoader loader = new SvcLogicLoader(serviceLogicDirectory, store);
61 loader.loadAndActivate();
62 } catch (IOException e) {
63 log.error("Cannot load directed graphs", e);
65 SvcLogicResolver resolver = new SvcLogicClassResolver();
69 svc = new SvcLogicServiceImpl(new SvcLogicPropertiesProviderImpl(), resolver);
70 } catch (SvcLogicException e) {
71 log.error("Cannot execute directed graph", e);
76 public ResponseEntity<ResponseFields> healthcheck() {
77 SvcLogicContext ctx = new SvcLogicContext();
78 ResponseFields resp = new ResponseFields();
83 log.info("Calling SLI-API:healthcheck DG");
84 Properties inputProps = new Properties();
85 Properties respProps = svc.execute("sli", "healthcheck" , null, "sync", inputProps);
86 if (respProps == null) {
87 log.info("DG execution returned no properties!");
89 log.info("DG execution returned properties");
90 for (String key: respProps.stringPropertyNames()) {
91 log.info("DG returned property "+key+" = "+respProps.getProperty(key));
94 resp.setAckFinalIndicator(respProps.getProperty("ack-final-indicator", "Y"));
95 resp.setResponseCode(respProps.getProperty("error-code", "200"));
96 resp.setResponseMessage(respProps.getProperty("error-message", "Success"));
98 return(new ResponseEntity<>(resp, HttpStatus.OK));
100 catch (Exception e) {
101 resp.setAckFinalIndicator("true");
102 resp.setResponseCode("500");
103 resp.setResponseMessage(e.getMessage());
104 log.error("Error calling healthcheck directed graph", e);
108 return(new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR));
113 public Optional<ObjectMapper> getObjectMapper() {
114 return Optional.ofNullable(objectMapper);
118 public Optional<HttpServletRequest> getRequest() {
119 return Optional.ofNullable(request);