1 package org.onap.simulator.presetGenerator.presets.mso;
3 import com.google.common.collect.ImmutableMap;
4 import org.apache.commons.lang3.StringUtils;
5 import org.apache.logging.log4j.LogManager;
6 import org.apache.logging.log4j.Logger;
7 import org.onap.simulator.presetGenerator.presets.BasePresets.BaseMSOPreset;
8 import org.springframework.http.HttpMethod;
9 import vid.automation.test.infra.Features;
11 import java.time.Instant;
12 import java.time.ZoneOffset;
13 import java.time.ZonedDateTime;
14 import java.time.format.DateTimeFormatter;
15 import java.time.temporal.ChronoUnit;
16 import java.util.Collections;
17 import java.util.List;
20 import static java.util.Collections.singletonList;
23 * Created by itzikliderman on 13/12/2017.
25 public class PresetMSOOrchestrationRequestGet extends BaseMSOPreset {
26 private static final Logger logger = LogManager.getLogger(PresetMSOOrchestrationRequestGet.class);
28 public static final String COMPLETE = "COMPLETE";
29 public static final String DEFAULT_REQUEST_ID = "c0011670-0e1a-4b74-945d-8bf5aede1d9c";
30 public static final String DEFAULT_SERVICE_INSTANCE_ID = BaseMSOPreset.DEFAULT_INSTANCE_ID;
32 private final String requestId;
33 private String statusMessage;
34 private String requestState;
35 private int startedHoursAgo = 1;
36 private boolean isDetailed = true;
39 public PresetMSOOrchestrationRequestGet() {
40 requestState = COMPLETE;
41 this.requestId = DEFAULT_REQUEST_ID;
44 public PresetMSOOrchestrationRequestGet(String requestState) {
45 this.requestState = requestState;
46 this.requestId = DEFAULT_REQUEST_ID;
51 * @param isDetailed - is expect to query param format=detail. Angular1 flows dont' expect it
53 public PresetMSOOrchestrationRequestGet(String requestState, boolean isDetailed) {
54 this.requestState = requestState;
55 this.requestId = DEFAULT_REQUEST_ID;
56 this.isDetailed = isDetailed;
59 public PresetMSOOrchestrationRequestGet(String requestState, String overrideRequestId) {
60 this.requestState = requestState;
61 this.requestId = overrideRequestId;
64 public PresetMSOOrchestrationRequestGet(String requestState, String overrideRequestId, String statusMessage) {
65 this.requestState = requestState;
66 this.requestId = overrideRequestId;
67 this.statusMessage = statusMessage;
71 * @param isDetailed - is expect to query param format=detail. Angular1 flows dont' expect it
73 public PresetMSOOrchestrationRequestGet(String requestState, String overrideRequestId, String statusMessage, boolean isDetailed) {
74 this.requestState = requestState;
75 this.requestId = overrideRequestId;
76 this.statusMessage = statusMessage;
77 this.isDetailed = isDetailed;
80 public PresetMSOOrchestrationRequestGet(String requestState, String overrideRequestId, String statusMessage, int startedHoursAgo) {
81 this.requestState = requestState;
82 this.requestId = overrideRequestId;
83 this.statusMessage = statusMessage;
84 this.startedHoursAgo = startedHoursAgo;
87 public PresetMSOOrchestrationRequestGet(String requestState, int startedHoursAgo) {
88 this.requestState = requestState;
89 this.requestId = DEFAULT_REQUEST_ID;
90 this.startedHoursAgo = startedHoursAgo;
94 public HttpMethod getReqMethod() {
95 return HttpMethod.GET;
98 public String getReqPath() {
99 return getRootPath() + "/orchestrationRequests/v./" + requestId;
103 public Map<String, List> getQueryParams() {
104 return (isDetailed && Features.FLAG_1908_RESUME_MACRO_SERVICE.isActive()) ?
105 ImmutableMap.of("format", singletonList("detail")) :
106 Collections.emptyMap();
110 public Object getResponseBody() {
113 " \"requestId\": \"" + requestId + "\"," +
114 " \"startTime\": \"" + getTimeHoursAgo(startedHoursAgo) + "\"," +
115 " \"requestScope\": \"service\"," +
116 " \"requestType\": \"createInstance\"," +
117 " \"instanceReferences\": {" +
118 " \"serviceInstanceId\": \"" + DEFAULT_SERVICE_INSTANCE_ID + "\"," +
119 " \"serviceInstanceName\": \"asdfasdf234234asdf\"," +
120 " \"requestorId\": \"il883e\"" +
122 " \"requestStatus\": {" +
123 " \"requestState\": \"" + requestState + "\"," +
124 " \"statusMessage\": \"" + getStatusMessage() + "\"," +
125 " \"percentProgress\": 100," +
126 " \"timestamp\": \"" + getTimeNow() + "\"" +
134 private String getStatusMessage() {
135 return StringUtils.defaultIfEmpty(statusMessage,
136 "COMPLETE".equals(requestState) ?
137 "Service Instance was created successfully." :
138 ("Service Instance was " + requestState.toLowerCase() + " successfully."));
141 private String getTimeNow() {
142 return getTimeHoursAgo(0);
145 private String getTimeHoursAgo(int delta) {
146 Instant instant = Instant.now();
147 Instant instantMinus = instant.minus(delta, ChronoUnit.HOURS);
148 ZonedDateTime dateDayAgo = ZonedDateTime.ofInstant(instantMinus, ZoneOffset.UTC);
149 DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME;
150 return formatter.format(dateDayAgo);