Merge automation from ECOMP's repository
[vid.git] / vid-automation / src / main / java / org / onap / simulator / presetGenerator / presets / mso / PresetMSOOrchestrationRequestGet.java
1 package org.onap.simulator.presetGenerator.presets.mso;
2
3 import org.apache.commons.lang3.StringUtils;
4 import org.apache.logging.log4j.LogManager;
5 import org.apache.logging.log4j.Logger;
6 import org.onap.simulator.presetGenerator.presets.BasePresets.BaseMSOPreset;
7 import org.springframework.http.HttpMethod;
8
9 import java.time.Instant;
10 import java.time.ZoneOffset;
11 import java.time.ZonedDateTime;
12 import java.time.format.DateTimeFormatter;
13 import java.time.temporal.ChronoUnit;
14
15 /**
16  * Created by itzikliderman on 13/12/2017.
17  */
18 public class PresetMSOOrchestrationRequestGet extends BaseMSOPreset {
19     private static final Logger logger = LogManager.getLogger(PresetMSOOrchestrationRequestGet.class);
20
21     public static final String COMPLETE = "COMPLETE";
22     public static final String DEFAULT_REQUEST_ID = "c0011670-0e1a-4b74-945d-8bf5aede1d9c";
23     public static final String DEFAULT_SERVICE_INSTANCE_ID = BaseMSOPreset.DEFAULT_INSTANCE_ID;
24
25     private final String requestId;
26     private String statusMessage;
27     private String requestState;
28     private int startedHoursAgo = 1;
29
30
31     public PresetMSOOrchestrationRequestGet() {
32         requestState = COMPLETE;
33         this.requestId = DEFAULT_REQUEST_ID;
34     }
35
36     public PresetMSOOrchestrationRequestGet(String requestState) {
37         this.requestState = requestState;
38         this.requestId = DEFAULT_REQUEST_ID;
39     }
40
41     public PresetMSOOrchestrationRequestGet(String requestState, String overrideRequestId) {
42         this.requestState = requestState;
43         this.requestId = overrideRequestId;
44     }
45
46     public PresetMSOOrchestrationRequestGet(String requestState, String overrideRequestId, String statusMessage) {
47         this.requestState = requestState;
48         this.requestId = overrideRequestId;
49         this.statusMessage = statusMessage;
50     }
51
52     public PresetMSOOrchestrationRequestGet(String requestState, String overrideRequestId, String statusMessage, int startedHoursAgo) {
53         this.requestState = requestState;
54         this.requestId = overrideRequestId;
55         this.statusMessage = statusMessage;
56         this.startedHoursAgo = startedHoursAgo;
57     }
58
59     public PresetMSOOrchestrationRequestGet(String requestState, int startedHoursAgo) {
60         this.requestState = requestState;
61         this.requestId = DEFAULT_REQUEST_ID;
62         this.startedHoursAgo = startedHoursAgo;
63     }
64
65     @Override
66     public HttpMethod getReqMethod() {
67         return HttpMethod.GET;
68     }
69
70     public String getReqPath() {
71         return getRootPath() + "/orchestrationRequests/v./" + requestId;
72     }
73
74     @Override
75     public Object getResponseBody() {
76          String body = "{" +
77                 "  \"request\": {" +
78                 "    \"requestId\": \"" + requestId + "\"," +
79                 "    \"startTime\": \"" + getTimeHoursAgo(startedHoursAgo) + "\"," +
80                 "    \"requestScope\": \"service\"," +
81                 "    \"requestType\": \"createInstance\"," +
82                 "    \"instanceReferences\": {" +
83                 "      \"serviceInstanceId\": \"" + DEFAULT_SERVICE_INSTANCE_ID + "\"," +
84                 "      \"serviceInstanceName\": \"asdfasdf234234asdf\"," +
85                 "      \"requestorId\": \"il883e\"" +
86                 "    }," +
87                 "    \"requestStatus\": {" +
88                 "      \"requestState\": \"" + requestState + "\"," +
89                 "      \"statusMessage\": \"" + getStatusMessage() + "\"," +
90                 "      \"percentProgress\": 100," +
91                 "      \"timestamp\": \"" + getTimeNow() + "\"" +
92                 "    }" +
93                 "  }" +
94                 "}";
95         logger.info(body);
96         return body;
97     }
98
99     private String getStatusMessage() {
100         return StringUtils.defaultIfEmpty(statusMessage,
101                 "COMPLETE".equals(requestState) ?
102                         "Service Instance was created successfully." :
103                         ("Service Instance was " + requestState.toLowerCase() + " successfully."));
104     }
105
106     private String getTimeNow() {
107         return getTimeHoursAgo(0);
108     }
109
110     private String getTimeHoursAgo(int delta) {
111         Instant instant = Instant.now();
112         Instant instantMinus = instant.minus(delta, ChronoUnit.HOURS);
113         ZonedDateTime dateDayAgo = ZonedDateTime.ofInstant(instantMinus, ZoneOffset.UTC);
114         DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME;
115         return formatter.format(dateDayAgo);
116     }
117 }