1 package org.onap.vid.controllers;
4 import org.onap.vid.exceptions.OperationNotAllowedException;
5 import org.onap.vid.model.ExceptionResponse;
7 import org.apache.commons.lang.StringUtils;
8 import org.apache.commons.lang.exception.ExceptionUtils;
10 import org.onap.vid.model.JobAuditStatus;
11 import org.onap.vid.model.ServiceInfo;
12 import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
13 import org.onap.vid.mso.MsoResponseWrapper2;
14 import org.onap.vid.services.AsyncInstantiationBusinessLogic;
15 import org.springframework.beans.factory.annotation.Autowired;
16 import org.springframework.web.bind.annotation.*;
17 import javax.servlet.http.HttpServletRequest;
18 import java.util.List;
19 import java.util.UUID;
20 import static org.springframework.http.HttpStatus.METHOD_NOT_ALLOWED;
24 @RequestMapping(AsyncInstantiationController.ASYNC_INSTANTIATION)
25 public class AsyncInstantiationController extends VidRestrictedBaseController {
27 public static final String ASYNC_INSTANTIATION = "asyncInstantiation";
29 protected final AsyncInstantiationBusinessLogic asyncInstantiationBL;
32 public AsyncInstantiationController(AsyncInstantiationBusinessLogic asyncInstantiationBL) {
33 this.asyncInstantiationBL = asyncInstantiationBL;
36 @ExceptionHandler(OperationNotAllowedException.class)
37 @ResponseStatus(value=METHOD_NOT_ALLOWED)
38 public ExceptionResponse illegalStateExceptionHandler(Exception e) {
39 return ControllersUtils.handleException(e, LOGGER);
43 * Gets the new services status.
44 * @param request the request
45 * @return the services list
47 @RequestMapping(method = RequestMethod.GET)
48 public List<ServiceInfo> getServicesInfo(HttpServletRequest request) {
49 return asyncInstantiationBL.getAllServicesInfo();
52 @RequestMapping(value = "bulk", method = RequestMethod.POST)
53 public MsoResponseWrapper2<List<String>> createBulkOfServices(@RequestBody ServiceInstantiation request, HttpServletRequest httpServletRequest) {
54 //Push to DB according the model
56 String userId = ControllersUtils.extractUserId(httpServletRequest);
57 List<UUID> uuids = asyncInstantiationBL.pushBulkJob(request, userId);
59 return new MsoResponseWrapper2(200, uuids);
62 @RequestMapping(value = "job/{jobId}", method = RequestMethod.DELETE)
63 public void deleteServiceInfo(@PathVariable("jobId") UUID jobId) {
64 asyncInstantiationBL.deleteJob(jobId);
67 @RequestMapping(value = "hide/{jobId}", method = RequestMethod.POST)
68 public void hideServiceInfo(@PathVariable("jobId") UUID jobId) {
69 asyncInstantiationBL.hideServiceInfo(jobId);
72 @RequestMapping(value = "auditStatus/{jobId}", method = RequestMethod.GET)
73 public List<JobAuditStatus> getJobAuditStatus(HttpServletRequest request, @PathVariable(value="jobId") UUID jobId, @RequestParam(value="source") JobAuditStatus.SourceStatus source){
74 return asyncInstantiationBL.getAuditStatuses(jobId, source);