apih to populate original request id 58/89058/1
authorPlummer, Brittany <brittany.plummer@att.com>
Fri, 31 May 2019 15:48:34 +0000 (11:48 -0400)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Fri, 31 May 2019 15:48:47 +0000 (11:48 -0400)
Updated schema.sql to fix failing tests
Added constants for request parameters
Added originalRequestId to be saved on resume request
Added originalRequestId to orchestrationRequests response

Change-Id: If2b86d233ee3db9bbe0e1185d92874bca2b3a07a
Issue-ID: SO-1960
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
common/src/main/java/org/onap/so/serviceinstancebeans/Request.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/RequestHandlerUtils.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ResumeOrchestrationRequest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/RequestHandlerUtilsUnitTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ResumeOrchestrationRequestTest.java
mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql
mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java
mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java

index fbdb27c..75a6ba8 100644 (file)
@@ -22,7 +22,6 @@ package org.onap.so.serviceinstancebeans;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
@@ -36,6 +35,7 @@ public class Request {
     protected String finishTime;
     protected String requestScope;
     protected String requestType;
+    protected String originalRequestId;
     protected RequestDetails requestDetails;
     protected InstanceReferences instanceReferences;
     protected RequestStatus requestStatus;
@@ -124,6 +124,14 @@ public class Request {
         this.cloudRequestData = cloudRequestData;
     }
 
+    public String getOriginalRequestId() {
+        return originalRequestId;
+    }
+
+    public void setOriginalRequestId(String originalRequestId) {
+        this.originalRequestId = originalRequestId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this).append("requestId", requestId).append("startTime", startTime)
@@ -131,6 +139,6 @@ public class Request {
                 .append("requestType", requestType).append("requestDetails", requestDetails)
                 .append("instanceReferences", instanceReferences).append("requestStatus", requestStatus)
                 .append("requestProcessingData", requestProcessingData).append("cloudRequestData", cloudRequestData)
-                .toString();
+                .append("originalRequestId", originalRequestId).toString();
     }
 }
index ff8b5d1..e14b017 100644 (file)
@@ -290,7 +290,7 @@ public class OrchestrationRequests {
         return Response.status(HttpStatus.SC_NO_CONTENT).entity("").build();
     }
 
-    private Request mapInfraActiveRequestToRequest(InfraActiveRequests iar, boolean includeCloudRequest)
+    protected Request mapInfraActiveRequestToRequest(InfraActiveRequests iar, boolean includeCloudRequest)
             throws ApiException {
         String requestBody = iar.getRequestBody();
         Request request = new Request();
@@ -304,6 +304,11 @@ public class OrchestrationRequests {
         String flowStatusMessage = iar.getFlowStatus();
         String retryStatusMessage = iar.getRetryStatusMessage();
 
+        String originalRequestId = iar.getOriginalRequestId();
+        if (originalRequestId != null) {
+            request.setOriginalRequestId(originalRequestId);
+        }
+
         InstanceReferences ir = new InstanceReferences();
         if (iar.getNetworkId() != null)
             ir.setNetworkInstanceId(iar.getNetworkId());
index f6fc88d..2a0718a 100644 (file)
@@ -621,7 +621,8 @@ public class RequestHandlerUtils {
     }
 
     protected InfraActiveRequests createNewRecordCopyFromInfraActiveRequest(InfraActiveRequests infraActiveRequest,
-            String requestId, Timestamp startTimeStamp, String source, String requestUri, String requestorId) {
+            String requestId, Timestamp startTimeStamp, String source, String requestUri, String requestorId,
+            String originalRequestId) {
         InfraActiveRequests request = new InfraActiveRequests();
         request.setRequestId(requestId);
         request.setStartTime(startTimeStamp);
@@ -630,6 +631,7 @@ public class RequestHandlerUtils {
         request.setProgress(new Long(5));
         request.setRequestorId(requestorId);
         request.setRequestStatus(Status.IN_PROGRESS.toString());
+        request.setOriginalRequestId(originalRequestId);
         request.setLastModifiedBy(Constants.MODIFIED_BY_APIHANDLER);
         if (infraActiveRequest != null) {
             request.setTenantId(infraActiveRequest.getTenantId());
index 6ca23a3..abf3729 100644 (file)
@@ -106,7 +106,7 @@ public class ResumeOrchestrationRequest {
         }
 
         InfraActiveRequests currentActiveRequest = requestHandlerUtils.createNewRecordCopyFromInfraActiveRequest(
-                infraActiveRequest, currentRequestId, startTimeStamp, source, requestUri, requestorId);
+                infraActiveRequest, currentRequestId, startTimeStamp, source, requestUri, requestorId, requestId);
 
         if (infraActiveRequest == null) {
             logger.error("No infraActiveRequest record found for requestId: {} in requesteDb lookup", requestId);
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java
new file mode 100644 (file)
index 0000000..19b9d7e
--- /dev/null
@@ -0,0 +1,90 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.apihandlerinfra;
+
+import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
+import static org.junit.Assert.assertThat;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.so.apihandlerinfra.exceptions.ApiException;
+import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.serviceinstancebeans.InstanceReferences;
+import org.onap.so.serviceinstancebeans.Request;
+import org.onap.so.serviceinstancebeans.RequestStatus;
+
+@RunWith(MockitoJUnitRunner.class)
+public class OrchestrationRequestsUnitTest {
+
+    @Spy
+    private OrchestrationRequests orchestrationRequests;
+
+    private static final String REQUEST_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebba";
+    private static final String SERVICE_INSTANCE_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebbb";
+    private static final String ORIGINAL_REQUEST_ID = "8f2d38a6-7c20-465a-bd7e-075645f1394b";
+    private static final String SERVICE = "service";
+    private InfraActiveRequests iar;
+    boolean includeCloudRequest = false;
+
+    @Before
+    public void setup() {
+        iar = new InfraActiveRequests();
+        iar.setRequestScope(SERVICE);
+        iar.setRequestId(REQUEST_ID);
+        iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
+    }
+
+    @Test
+    public void mapInfraActiveRequestToRequestWithOriginalRequestIdTest() throws ApiException {
+        InstanceReferences instanceReferences = new InstanceReferences();
+        instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
+        RequestStatus requestStatus = new RequestStatus();
+        Request expected = new Request();
+        expected.setRequestId(REQUEST_ID);
+        expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
+        expected.setInstanceReferences(instanceReferences);
+        expected.setRequestStatus(requestStatus);
+        expected.setRequestScope(SERVICE);
+
+        iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
+
+        Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest);
+        assertThat(result, sameBeanAs(expected));
+    }
+
+    @Test
+    public void mapInfraActiveRequestToRequestOriginalRequestIdNullTest() throws ApiException {
+        InstanceReferences instanceReferences = new InstanceReferences();
+        instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
+        RequestStatus requestStatus = new RequestStatus();
+        Request expected = new Request();
+        expected.setRequestId(REQUEST_ID);
+        expected.setInstanceReferences(instanceReferences);
+        expected.setRequestStatus(requestStatus);
+        expected.setRequestScope(SERVICE);
+
+        Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest);
+        assertThat(result, sameBeanAs(expected));
+    }
+
+}
index e80fd9e..b9d9974 100644 (file)
@@ -40,6 +40,7 @@ public class RequestHandlerUtilsUnitTest {
     private RequestHandlerUtils requestHandler;
 
     private static final String CURRENT_REQUEST_ID = "eca3a1b1-43ab-457e-ab1c-367263d148b4";
+    private static final String RESUMED_REQUEST_ID = "59c7247f-839f-4923-90c3-05faa3ab354d";
     private static final String SERVICE_INSTANCE_ID = "00032ab7-na18-42e5-965d-8ea592502018";
     private final Timestamp startTimeStamp = new Timestamp(System.currentTimeMillis());
     private String requestUri =
@@ -88,6 +89,7 @@ public class RequestHandlerUtilsUnitTest {
         currentActiveRequest.setRequestUrl(requestUri);
         currentActiveRequest.setRequestorId("xxxxxx");
         currentActiveRequest.setProgress(new Long(5));
+        currentActiveRequest.setOriginalRequestId(RESUMED_REQUEST_ID);
     }
 
     private void setCurrentActiveRequestNullInfraActive() throws IOException {
@@ -99,20 +101,21 @@ public class RequestHandlerUtilsUnitTest {
         currentActiveRequestIARNull.setRequestUrl(requestUri);
         currentActiveRequestIARNull.setRequestorId("xxxxxx");
         currentActiveRequestIARNull.setProgress(new Long(5));
+        currentActiveRequestIARNull.setOriginalRequestId(RESUMED_REQUEST_ID);
     }
 
 
     @Test
     public void createNewRecordCopyFromInfraActiveRequestTest() {
         InfraActiveRequests result = requestHandler.createNewRecordCopyFromInfraActiveRequest(infraActiveRequest,
-                CURRENT_REQUEST_ID, startTimeStamp, "VID", requestUri, "xxxxxx");
+                CURRENT_REQUEST_ID, startTimeStamp, "VID", requestUri, "xxxxxx", RESUMED_REQUEST_ID);
         assertThat(currentActiveRequest, sameBeanAs(result));
     }
 
     @Test
     public void createNewRecordCopyFromInfraActiveRequestNullIARTest() {
         InfraActiveRequests result = requestHandler.createNewRecordCopyFromInfraActiveRequest(null, CURRENT_REQUEST_ID,
-                startTimeStamp, "VID", requestUri, "xxxxxx");
+                startTimeStamp, "VID", requestUri, "xxxxxx", RESUMED_REQUEST_ID);
         assertThat(currentActiveRequestIARNull, sameBeanAs(result));
     }
 }
index 92490a6..7e49fff 100644 (file)
@@ -169,7 +169,7 @@ public class ResumeOrchestrationRequestTest {
         when(requestDbClient.getInfraActiveRequestbyRequestId(REQUEST_ID)).thenReturn(infraActiveRequest);
         doReturn(currentActiveRequest).when(requestHandler).createNewRecordCopyFromInfraActiveRequest(
                 any(InfraActiveRequests.class), nullable(String.class), any(Timestamp.class), nullable(String.class),
-                nullable(String.class), nullable(String.class));
+                nullable(String.class), nullable(String.class), anyString());
         doReturn(response).when(resumeReq).resumeRequest(any(InfraActiveRequests.class), any(InfraActiveRequests.class),
                 anyString(), nullable(String.class));
 
index 65372b7..ef13df5 100644 (file)
@@ -96,7 +96,8 @@ CREATE TABLE IF NOT EXISTS PUBLIC.INFRA_ACTIVE_REQUESTS(
     OPERATIONAL_ENV_NAME VARCHAR SELECTIVITY 1,
     INSTANCE_GROUP_ID VARCHAR SELECTIVITY 1,
     INSTANCE_GROUP_NAME VARCHAR SELECTIVITY 1,
-    REQUEST_URL VARCHAR SELECTIVITY 1
+    REQUEST_URL VARCHAR SELECTIVITY 1,
+    ORIGINAL_REQUEST_ID VARCHAR SELECTIVITY 1
 );          
 
 INSERT INTO PUBLIC.INFRA_ACTIVE_REQUESTS(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
index 37fbfd0..9aa04ea 100644 (file)
@@ -87,6 +87,7 @@ public class InfraActiveRequests extends InfraRequests {
                 .append("networkName", getNetworkName()).append("networkType", getNetworkType())
                 .append("requestorId", getRequestorId()).append("configurationId", getConfigurationId())
                 .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId())
-                .append("operationalEnvName", getOperationalEnvName()).append("requestUrl", getRequestUrl()).toString();
+                .append("operationalEnvName", getOperationalEnvName()).append("requestUrl", getRequestUrl())
+                .append("originalRequestId", getOriginalRequestId()).toString();
     }
 }
index 7c58c61..1a925f2 100644 (file)
@@ -152,6 +152,8 @@ public abstract class InfraRequests implements java.io.Serializable {
     private String instanceGroupName;
     @Column(name = "REQUEST_URL", length = 500)
     private String requestUrl;
+    @Column(name = "ORIGINAL_REQUEST_ID", length = 45)
+    private String originalRequestId;
 
     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
     @JoinColumn(name = "SO_REQUEST_ID", referencedColumnName = "REQUEST_ID")
@@ -569,6 +571,14 @@ public abstract class InfraRequests implements java.io.Serializable {
         this.requestUrl = requestUrl;
     }
 
+    public String getOriginalRequestId() {
+        return this.originalRequestId;
+    }
+
+    public void setOriginalRequestId(String originalRequestId) {
+        this.originalRequestId = originalRequestId;
+    }
+
     @PrePersist
     protected void onCreate() {
         if (requestScope == null)
@@ -630,6 +640,7 @@ public abstract class InfraRequests implements java.io.Serializable {
                 .append("requestorId", getRequestorId()).append("configurationId", getConfigurationId())
                 .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId())
                 .append("operationalEnvName", getOperationalEnvName()).append("instanceGroupId", getInstanceGroupId())
-                .append("instanceGroupName", getInstanceGroupName()).append("requestUrl", getRequestUrl()).toString();
+                .append("instanceGroupName", getInstanceGroupName()).append("requestUrl", getRequestUrl())
+                .append("originalRequestId", originalRequestId).toString();
     }
 }