API to get template-topology by job id 90/98990/1
authorIttay Stern <ittay.stern@att.com>
Mon, 2 Dec 2019 07:22:42 +0000 (09:22 +0200)
committerIttay Stern <ittay.stern@att.com>
Mon, 2 Dec 2019 07:30:41 +0000 (09:30 +0200)
..../vid/asyncInstantiation/templateTopology/{jobId}

Issue-ID: VID-724

Change-Id: I5704951a595293d10ed6ae09c0113e1cac5b5788
Signed-off-by: Ittay Stern <ittay.stern@att.com>
vid-app-common/src/main/java/org/onap/vid/controller/AsyncInstantiationController.java
vid-app-common/src/main/java/org/onap/vid/services/AsyncInstantiationBusinessLogic.java
vid-app-common/src/main/java/org/onap/vid/services/AsyncInstantiationBusinessLogicImpl.java
vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBusinessLogicTest.java

index 6bd98ff..5eb315d 100644 (file)
@@ -37,6 +37,7 @@ import org.onap.vid.services.AsyncInstantiationBusinessLogic;
 import org.onap.vid.services.AuditService;
 import org.onap.vid.utils.SystemPropertiesWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -158,6 +159,11 @@ public class AsyncInstantiationController extends VidRestrictedBaseController {
         return new MsoResponseWrapper2(200, uuids);
     }
 
+    @GetMapping("templateTopology/{jobId}")
+    public ServiceInstantiation getTemplateTopology(HttpServletRequest request, @PathVariable(value="jobId") UUID jobId) {
+        return asyncInstantiationBL.getJobRequestAsTemplate(jobId);
+    }
+
     @RequestMapping(value = "/auditStatusForRetry/{trackById}", method = RequestMethod.GET)
     public JobAuditStatus getResourceAuditStatus(HttpServletRequest request, @PathVariable(value="trackById") String trackById) {
         return auditService.getResourceAuditStatus(trackById);
index 1202fc9..e00758a 100644 (file)
 
 package org.onap.vid.services;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+import java.util.function.Consumer;
 import org.onap.vid.aai.model.ResourceType;
 import org.onap.vid.job.Job;
 import org.onap.vid.job.impl.JobSharedData;
@@ -28,11 +32,6 @@ import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
 import org.onap.vid.mso.RestObject;
 import org.onap.vid.mso.rest.AsyncRequestStatus;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-import java.util.function.Consumer;
-
 public interface AsyncInstantiationBusinessLogic {
 
     List<String> PARAMS_TO_IGNORE = Arrays.asList("vnf_name", "vf_module_name");
@@ -109,5 +108,7 @@ public interface AsyncInstantiationBusinessLogic {
 
     ServiceInstantiation getBulkForRetry(UUID jobId);
 
+    ServiceInstantiation getJobRequestAsTemplate(UUID jobId);
+
     String getResumeRequestPath(String requestId);
 }
index c77eb82..86d630b 100644 (file)
@@ -533,6 +533,11 @@ public class AsyncInstantiationBusinessLogicImpl implements
          return enrichBulkForRetry( asyncInstantiationRepository.getJobRequest(jobId), jobId);
     }
 
+    @Override
+    public ServiceInstantiation getJobRequestAsTemplate(UUID jobId) {
+         return asyncInstantiationRepository.getJobRequest(jobId);
+    }
+
     @Override
     public void addResourceInfo(JobSharedData sharedData, Job.JobStatus jobStatus, String instanceId) {
         String trackById = ((BaseResource) sharedData.getRequest()).getTrackById();
index 54015d4..56aaf1e 100644 (file)
@@ -35,15 +35,16 @@ import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.matchesPattern;
 import static org.hamcrest.Matchers.not;
 import static org.hamcrest.Matchers.nullValue;
+import static org.hamcrest.Matchers.sameInstance;
 import static org.hamcrest.core.Every.everyItem;
 import static org.hamcrest.core.IsEqual.equalTo;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.anyString;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.spy;
@@ -199,6 +200,7 @@ public class AsyncInstantiationBusinessLogicTest extends AsyncInstantiationBaseT
         Mockito.reset(aaiClient);
         Mockito.reset(jobAdapterMock);
         Mockito.reset(jobsBrokerServiceMock);
+        Mockito.reset(asyncInstantiationRepository);
         mockAaiClientAnyNameFree();
         enableAddCloudOwnerOnMsoRequest();
     }
@@ -1366,4 +1368,16 @@ public class AsyncInstantiationBusinessLogicTest extends AsyncInstantiationBaseT
         assertThat(path, equalTo("/serviceInstantiation/v7/serviceInstances/myService/vnfs/myVNF/vfModules/myVFModule/replace"));
 
     }
+
+    @Test
+    public void getJobRequestAsTemplate_whenIsCalled_asyncInstantiationRepositoryGetJobRequestIsDelegated() {
+        UUID jobId = UUID.randomUUID();
+        ServiceInstantiation expected = mock(ServiceInstantiation.class);
+        doReturn(expected).when(asyncInstantiationRepository).getJobRequest(jobId);
+
+        ServiceInstantiation jobRequestAsTemplate = asyncInstantiationBL.getJobRequestAsTemplate(jobId);
+
+        assertThat(jobRequestAsTemplate, is(sameInstance(expected)));
+
+    }
 }