summaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java/org/onap/vid/controllers
diff options
context:
space:
mode:
authorSonsino, Ofir (os0695) <os0695@intl.att.com>2018-07-10 14:20:54 +0300
committerSonsino, Ofir (os0695) <os0695@intl.att.com>2018-07-10 14:20:54 +0300
commitc72d565bb58226b20625b2bce5f0019046bee649 (patch)
tree8658e49595705b02e47ddc14afa20d6bb7123547 /vid-app-common/src/main/java/org/onap/vid/controllers
parentef8a6b47847012fd59ea20da21d8d3d7c4a301ed (diff)
Merge 1806 code of vid-common
Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) <os0695@intl.att.com>
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/controllers')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/AaiController.java161
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/AsyncControllerForTests.java56
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/AsyncInstantiationController.java78
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/ChangeManagementController.java18
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/ControllersUtils.java7
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/FeatureTogglingController.java29
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java8
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java37
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/MsoConfig.java5
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/MsoController.java84
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/OperationalEnvironmentController.java25
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/PolicyController.java6
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/ProbeController.java27
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/PropertyController.java10
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/RoleGeneratorController.java9
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/VidController.java38
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/VidRestrictedBaseController.java43
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controllers/WebConfig.java148
18 files changed, 520 insertions, 269 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/AaiController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/AaiController.java
index b7dfd37c..1a426ed2 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/AaiController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/AaiController.java
@@ -20,13 +20,15 @@
package org.onap.vid.controllers;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
import org.codehaus.jackson.map.ObjectMapper;
import org.onap.vid.aai.AaiResponse;
+import org.onap.vid.aai.AaiResponseTranslator.PortMirroringConfigData;
import org.onap.vid.aai.ServiceInstancesSearchResults;
import org.onap.vid.aai.SubscriberData;
import org.onap.vid.aai.SubscriberFilteredResults;
+import org.onap.vid.aai.model.AaiGetInstanceGroupsByCloudRegion;
import org.onap.vid.aai.model.AaiGetOperationalEnvironments.OperationalEnvironmentList;
import org.onap.vid.aai.model.AaiGetPnfs.Pnf;
import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse;
@@ -49,16 +51,15 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.BadRequestException;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
-import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.stream.Collectors;
import static org.onap.vid.utils.Logging.getMethodName;
@@ -67,8 +68,7 @@ import static org.onap.vid.utils.Logging.getMethodName;
*/
@RestController
-public class
-AaiController extends RestrictedBaseController {
+public class AaiController extends RestrictedBaseController {
/**
* The Constant dateFormat.
*/
@@ -98,14 +98,8 @@ AaiController extends RestrictedBaseController {
@Autowired
private RoleProvider roleProvider;
- public AaiController() {
-
- }
-
- public AaiController(ServletContext servletContext) {
- this.servletContext = servletContext;
-
- }
+ @Autowired
+ private AAIRestInterface aaiRestInterface;
/**
* Welcome method.
@@ -120,28 +114,32 @@ AaiController extends RestrictedBaseController {
}
@RequestMapping(value = {"/aai_get_aic_zones"}, method = RequestMethod.GET)
- public ResponseEntity<String> getAicZones(HttpServletRequest request) throws JsonGenerationException, JsonMappingException, IOException {
+ public ResponseEntity<String> getAicZones(HttpServletRequest request) throws IOException {
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== getAicZones controller start");
AaiResponse response = aaiService.getAaiZones();
return aaiResponseToResponseEntity(response);
}
@RequestMapping(value = {"/aai_get_aic_zone_for_pnf/{globalCustomerId}/{serviceType}/{serviceId}"}, method = RequestMethod.GET)
- public ResponseEntity<String> getAicZoneForPnf(@PathVariable("globalCustomerId") String globalCustomerId ,@PathVariable("serviceType") String serviceType , @PathVariable("serviceId") String serviceId ,HttpServletRequest request) throws JsonGenerationException, JsonMappingException, IOException {
+ public ResponseEntity<String> getAicZoneForPnf(@PathVariable("globalCustomerId") String globalCustomerId ,@PathVariable("serviceType") String serviceType , @PathVariable("serviceId") String serviceId ,HttpServletRequest request) throws IOException {
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== getAicZoneForPnf controller start");
AaiResponse response = aaiService.getAicZoneForPnf(globalCustomerId , serviceType , serviceId);
return aaiResponseToResponseEntity(response);
}
+ @RequestMapping(value = {"/aai_get_instance_groups_by_vnf_instance_id/{vnfInstanceId}"}, method = RequestMethod.GET)
+ public ResponseEntity<String> getInstanceGroupsByVnfInstanceId(@PathVariable("vnfInstanceId") String vnfInstanceId ,HttpServletRequest request) throws IOException {
+ AaiResponse response = aaiService.getInstanceGroupsByVnfInstanceId(vnfInstanceId);
+ return aaiResponseToResponseEntity(response);
+ }
/**
* Get services from a&ai.
*
* @return ResponseEntity<String> The response entity with the logged in user uuid.
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = {"/getuserID"}, method = RequestMethod.GET)
- public ResponseEntity<String> getUserID(HttpServletRequest request) throws IOException, InterruptedException {
+ public ResponseEntity<String> getUserID(HttpServletRequest request) {
String userId = ControllersUtils.extractUserId(request);
@@ -153,10 +151,9 @@ AaiController extends RestrictedBaseController {
*
* @return ResponseEntity<String> The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = "/aai_get_services", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<String> doGetServices(HttpServletRequest request) throws IOException, InterruptedException {
+ public ResponseEntity<String> doGetServices(HttpServletRequest request) throws IOException {
RoleValidator roleValidator = new RoleValidator(roleProvider.getUserRoles(request));
AaiResponse subscriberList = aaiService.getServices(roleValidator);
@@ -167,7 +164,7 @@ AaiController extends RestrictedBaseController {
@RequestMapping(value = {"/aai_get_version_by_invariant_id"}, method = RequestMethod.POST)
- public ResponseEntity<String> getVersionByInvariantId(HttpServletRequest request, @RequestBody VersionByInvariantIdsRequest versions) throws IOException {
+ public ResponseEntity<String> getVersionByInvariantId(HttpServletRequest request, @RequestBody VersionByInvariantIdsRequest versions) {
ResponseEntity<String> responseEntity;
ObjectMapper objectMapper = new ObjectMapper();
@@ -178,7 +175,7 @@ AaiController extends RestrictedBaseController {
private ResponseEntity<String> aaiResponseToResponseEntity(AaiResponse aaiResponseData)
- throws IOException, JsonGenerationException, JsonMappingException {
+ throws IOException {
ResponseEntity<String> responseEntity;
ObjectMapper objectMapper = new ObjectMapper();
if (aaiResponseData.getHttpCode() == 200) {
@@ -195,19 +192,17 @@ AaiController extends RestrictedBaseController {
* @param serviceInstanceId the service instance Id
* @return ResponseEntity The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = "/aai_get_service_instance/{service-instance-id}/{service-instance-type}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<String> doGetServiceInstance(@PathVariable("service-instance-id") String serviceInstanceId, @PathVariable("service-instance-type") String serviceInstanceType) throws IOException, InterruptedException {
- File certiPath = GetCertificatesPath();
+ public ResponseEntity<String> doGetServiceInstance(@PathVariable("service-instance-id") String serviceInstanceId, @PathVariable("service-instance-type") String serviceInstanceType) {
Response resp = null;
if (serviceInstanceType.equalsIgnoreCase("Service Instance Id")) {
- resp = doAaiGet(certiPath.getAbsolutePath(),
+ resp = doAaiGet(
"search/nodes-query?search-node-type=service-instance&filter=service-instance-id:EQUALS:"
+ serviceInstanceId, false);
} else {
- resp = doAaiGet(certiPath.getAbsolutePath(),
+ resp = doAaiGet(
"search/nodes-query?search-node-type=service-instance&filter=service-instance-name:EQUALS:"
+ serviceInstanceId, false);
}
@@ -221,13 +216,11 @@ AaiController extends RestrictedBaseController {
* @param serviceSubscriptionId the service subscription id
* @return ResponseEntity The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = "/aai_get_service_subscription/{global-customer-id}/{service-subscription-id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> doGetServices(@PathVariable("global-customer-id") String globalCustomerId,
- @PathVariable("service-subscription-id") String serviceSubscriptionId) throws IOException, InterruptedException {
- File certiPath = GetCertificatesPath();
- Response resp = doAaiGet(certiPath.getAbsolutePath(), "business/customers/customer/" + globalCustomerId
+ @PathVariable("service-subscription-id") String serviceSubscriptionId) {
+ Response resp = doAaiGet("business/customers/customer/" + globalCustomerId
+ "/service-subscriptions/service-subscription/" + serviceSubscriptionId + "?depth=0", false);
return convertResponseToResponseEntity(resp);
}
@@ -238,10 +231,9 @@ AaiController extends RestrictedBaseController {
* @param fullSet the full set
* @return ResponseEntity The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = "/aai_get_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<String> doGetSubscriberList(HttpServletRequest request, @DefaultValue("n") @QueryParam("fullSet") String fullSet) throws IOException, InterruptedException {
+ public ResponseEntity<String> doGetSubscriberList(HttpServletRequest request, @DefaultValue("n") @QueryParam("fullSet") String fullSet) throws IOException {
return getFullSubscriberList(request);
}
@@ -250,10 +242,9 @@ AaiController extends RestrictedBaseController {
*
* @return ResponseEntity The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = "/get_system_prop_vnf_prov_status", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<String> getTargetProvStatus() throws IOException, InterruptedException {
+ public ResponseEntity<String> getTargetProvStatus() {
String p = SystemProperties.getProperty("aai.vnf.provstatus");
return new ResponseEntity<String>(p, HttpStatus.OK);
}
@@ -264,11 +255,10 @@ AaiController extends RestrictedBaseController {
*
* @return ResponseEntity The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = "/get_operational_environments", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public AaiResponse<OperationalEnvironmentList> getOperationalEnvironments(@RequestParam(value="operationalEnvironmentType", required = false) String operationalEnvironmentType,
- @RequestParam(value="operationalEnvironmentStatus", required = false) String operationalEnvironmentStatus) throws IOException, InterruptedException {
+ @RequestParam(value="operationalEnvironmentStatus", required = false) String operationalEnvironmentStatus) {
LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({}, {})", getMethodName(), operationalEnvironmentType, operationalEnvironmentStatus);
AaiResponse<OperationalEnvironmentList> response = aaiService.getOperationalEnvironments(operationalEnvironmentType,operationalEnvironmentStatus);
if (response.getHttpCode() != 200) {
@@ -288,10 +278,9 @@ AaiController extends RestrictedBaseController {
* g @return ResponseEntity The response entity
*
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
*/
@RequestMapping(value = "/aai_get_full_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<String> getFullSubscriberList(HttpServletRequest request) throws IOException, InterruptedException {
+ public ResponseEntity<String> getFullSubscriberList(HttpServletRequest request) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
ResponseEntity<String> responseEntity;
RoleValidator roleValidator = new RoleValidator(roleProvider.getUserRoles(request));
@@ -312,7 +301,7 @@ AaiController extends RestrictedBaseController {
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getVnfDataByGlobalIdAndServiceType(HttpServletRequest request,
@PathVariable("globalCustomerId") String globalCustomerId,
- @PathVariable("serviceType") String serviceType) throws IOException {
+ @PathVariable("serviceType") String serviceType) {
Response resp = aaiService.getVNFData(globalCustomerId, serviceType);
return convertResponseToResponseEntity(resp);
@@ -326,7 +315,7 @@ AaiController extends RestrictedBaseController {
* @throws IOException Signals that an I/O exception has occurred.
*/
@RequestMapping(value = "/aai_refresh_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<String> doRefreshSubscriberList() throws IOException {
+ public ResponseEntity<String> doRefreshSubscriberList() {
Response resp = getSubscribers(false);
return convertResponseToResponseEntity(resp);
}
@@ -338,7 +327,7 @@ AaiController extends RestrictedBaseController {
* @throws IOException Signals that an I/O exception has occurred.
*/
@RequestMapping(value = "/aai_refresh_full_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<String> doRefreshFullSubscriberList() throws IOException {
+ public ResponseEntity<String> doRefreshFullSubscriberList() {
Response resp = getSubscribers(false);
return convertResponseToResponseEntity(resp);
}
@@ -421,9 +410,8 @@ AaiController extends RestrictedBaseController {
@PathVariable("serviceInstance") String serviceInstance) {
String componentListPayload = getComponentListPutPayload(namedQueryId, globalCustomerId, serviceType, serviceInstance);
- File certiPath = GetCertificatesPath();
- Response resp = doAaiPost(certiPath.getAbsolutePath(), "search/named-query", componentListPayload, false);
+ Response resp = doAaiPost("search/named-query", componentListPayload, false);
return convertResponseToResponseEntity(resp);
}
@@ -453,9 +441,8 @@ AaiController extends RestrictedBaseController {
@PathVariable("serviceType") String serviceType) {
String componentListPayload = getModelsByServiceTypePayload(namedQueryId, globalCustomerId, serviceType);
- File certiPath = GetCertificatesPath();
- Response resp = doAaiPost(certiPath.getAbsolutePath(), "search/named-query", componentListPayload, false);
+ Response resp = doAaiPost("search/named-query", componentListPayload, false);
return convertResponseToResponseEntity(resp);
}
@@ -471,24 +458,48 @@ AaiController extends RestrictedBaseController {
return new ResponseEntity<String>(resp.getT(), HttpStatus.valueOf(resp.getHttpCode()));
}
+ @RequestMapping(value = "/aai_get_network_collection_details/{serviceInstanceId}", method = RequestMethod.GET)
+ public ResponseEntity<String> getNetworkCollectionDetails(@PathVariable("serviceInstanceId") String serviceInstanceId) throws IOException {
+ com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
+ AaiResponse<String> resp = aaiService.getNetworkCollectionDetails(serviceInstanceId);
+
+ String httpMessage = resp.getT() != null ?
+ objectMapper.writeValueAsString(resp.getT()) :
+ resp.getErrorMessage();
+ return new ResponseEntity<String>(httpMessage, HttpStatus.valueOf(resp.getHttpCode()));
+ }
+
+ @RequestMapping(value = "/aai_get_instance_groups_by_cloudregion/{cloudOwner}/{cloudRegionId}/{networkFunction}", method = RequestMethod.GET)
+ public ResponseEntity<String> getInstanceGroupsByCloudRegion(@PathVariable("cloudOwner") String cloudOwner,
+ @PathVariable("cloudRegionId") String cloudRegionId,
+ @PathVariable("networkFunction") String networkFunction) throws IOException {
+ com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
+ AaiResponse<AaiGetInstanceGroupsByCloudRegion> resp = aaiService.getInstanceGroupsByCloudRegion(cloudOwner, cloudRegionId, networkFunction);
+
+ String httpMessage = resp.getT() != null ?
+ objectMapper.writeValueAsString(resp.getT()) :
+ resp.getErrorMessage();
+ return new ResponseEntity<String>(httpMessage, HttpStatus.valueOf(resp.getHttpCode()));
+ }
+
@RequestMapping(value = "/aai_get_by_uri/**", method = RequestMethod.GET)
public ResponseEntity<String> getByUri(HttpServletRequest request) {
- File certiPath = GetCertificatesPath();
String restOfTheUrl = (String) request.getAttribute(
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String formattedUri = restOfTheUrl.replaceFirst("/aai_get_by_uri/", "").replaceFirst("^aai/v[\\d]+/", "");
- Response resp = doAaiGet(certiPath.getAbsolutePath(), formattedUri, false);
+ Response resp = doAaiGet(formattedUri, false);
return convertResponseToResponseEntity(resp);
}
+
+
@RequestMapping(value = "/aai_get_configuration/{configuration_id}", method = RequestMethod.GET)
public ResponseEntity<String> getSpecificConfiguration(@PathVariable("configuration_id") String configurationId) {
- File certiPath = GetCertificatesPath();
- Response resp = doAaiGet(certiPath.getAbsolutePath(), "network/configurations/configuration/"+configurationId, false);
+ Response resp = doAaiGet("network/configurations/configuration/"+configurationId, false);
return convertResponseToResponseEntity(resp);
}
@@ -563,6 +574,24 @@ AaiController extends RestrictedBaseController {
return new ResponseEntity<String>(resp.getT(), HttpStatus.valueOf(resp.getHttpCode()));
}
+ @RequestMapping(value = "/aai_getPortMirroringConfigsData", method = RequestMethod.GET)
+ public Map<String, PortMirroringConfigData> getPortMirroringConfigsData(
+ @RequestParam ("configurationIds") List<String> configurationIds) {
+
+ return configurationIds.stream()
+ .map(id -> ImmutablePair.of(id, aaiService.getPortMirroringConfigData(id)))
+ .collect(Collectors.toMap(Pair::getKey, Pair::getValue));
+ }
+
+ @RequestMapping(value = "/aai_getPortMirroringSourcePorts", method = RequestMethod.GET)
+ public Map<String, Object> getPortMirroringSourcePorts(
+ @RequestParam ("configurationIds") List<String> configurationIds) {
+
+ return configurationIds.stream()
+ .map(id -> ImmutablePair.of(id, aaiService.getPortMirroringSourcePorts(id)))
+ .collect(Collectors.toMap(Pair::getKey, Pair::getValue));
+ }
+
private ResponseEntity<String> convertResponseToResponseEntity(Response resp) {
ResponseEntity<String> respEnt;
ObjectMapper objectMapper = new ObjectMapper();
@@ -582,10 +611,9 @@ AaiController extends RestrictedBaseController {
*/
private Response getSubscribers(boolean isFullSet) {
- File certiPath = GetCertificatesPath();
String depth = "0";
- Response resp = doAaiGet(certiPath.getAbsolutePath(), "business/customers?subscriber-type=INFRA&depth=" + depth, false);
+ Response resp = doAaiGet("business/customers?subscriber-type=INFRA&depth=" + depth, false);
if (resp != null) {
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "getSubscribers() resp=" + resp.getStatusInfo().toString());
}
@@ -599,33 +627,20 @@ AaiController extends RestrictedBaseController {
* @return the subscriber details
*/
private Response getSubscriberDetails(String subscriberId) {
- File certiPath = GetCertificatesPath();
- Response resp = doAaiGet(certiPath.getAbsolutePath(), "business/customers/customer/" + subscriberId + "?depth=2", false);
+ Response resp = doAaiGet("business/customers/customer/" + subscriberId + "?depth=2", false);
//String resp = doAaiGet(certiPath.getAbsolutePath(), "business/customers/customer/" + subscriberId, false);
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "getSubscriberDetails() resp=" + resp.getStatusInfo().toString());
return resp;
}
/**
- * Gets the certificates path.
- *
- * @return the file
- */
- private File GetCertificatesPath() {
- if (servletContext != null)
- return new File(servletContext.getRealPath("/WEB-INF/cert/"));
- return null;
- }
-
- /**
* Send a GET request to a&ai.
*
- * @param certiPath the certi path
* @param uri the uri
* @param xml the xml
* @return String The response
*/
- protected Response doAaiGet(String certiPath, String uri, boolean xml) {
+ protected Response doAaiGet(String uri, boolean xml) {
String methodName = "getSubscriberList";
String transId = UUID.randomUUID().toString();
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -633,11 +648,11 @@ AaiController extends RestrictedBaseController {
Response resp = null;
try {
- AAIRestInterface restContrller = new AAIRestInterface(certiPath);
- resp = restContrller.RestGet(fromAppId, transId, uri, xml);
+
+ resp = aaiRestInterface.RestGet(fromAppId, transId, uri, xml).getResponse();
} catch (WebApplicationException e) {
- final String message = ((BadRequestException) e).getResponse().readEntity(String.class);
+ final String message = e.getResponse().readEntity(String.class);
LOGGER.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + message);
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + message);
} catch (Exception e) {
@@ -651,13 +666,12 @@ AaiController extends RestrictedBaseController {
/**
* Send a POST request to a&ai.
*
- * @param certiPath the certi path
* @param uri the uri
* @param payload the payload
* @param xml the xml
* @return String The response
*/
- protected Response doAaiPost(String certiPath, String uri, String payload, boolean xml) {
+ protected Response doAaiPost(String uri, String payload, boolean xml) {
String methodName = "getSubscriberList";
String transId = UUID.randomUUID().toString();
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -665,8 +679,7 @@ AaiController extends RestrictedBaseController {
Response resp = null;
try {
- AAIRestInterface restContrller = new AAIRestInterface(certiPath);
- resp = restContrller.RestPost(fromAppId, transId, uri, payload, xml);
+ resp = aaiRestInterface.RestPost(fromAppId, uri, payload, xml);
} catch (Exception e) {
LOGGER.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/AsyncControllerForTests.java b/vid-app-common/src/main/java/org/onap/vid/controllers/AsyncControllerForTests.java
new file mode 100644
index 00000000..c4d82932
--- /dev/null
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/AsyncControllerForTests.java
@@ -0,0 +1,56 @@
+package org.onap.vid.controllers;
+
+import org.onap.vid.exceptions.GenericUncheckedException;
+import org.onap.vid.model.ExceptionResponse;
+import org.onap.vid.model.JobBulk;
+import org.onap.vid.model.JobModel;
+import org.onap.vid.services.BulkInstantiationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
+
+import javax.ws.rs.WebApplicationException;
+import java.util.Map;
+import java.util.UUID;
+
+import static org.springframework.http.HttpStatus.BAD_REQUEST;
+
+@RestController
+@RequestMapping("asyncForTests")
+public class AsyncControllerForTests extends VidRestrictedBaseController {
+
+ private BulkInstantiationService bulkInstantiationService;
+
+ @Autowired
+ public AsyncControllerForTests(BulkInstantiationService bulkInstantiationService) {
+ this.bulkInstantiationService = bulkInstantiationService;
+ }
+
+ @RequestMapping(method = RequestMethod.POST)
+ public JobBulk createAsyncJob(@RequestBody Map<String, Object> body) {
+ return bulkInstantiationService.saveBulk(body);
+ }
+
+ @RequestMapping(value = "/job/{uuid}", method = RequestMethod.GET)
+ public JobModel getJob(@PathVariable UUID uuid) {
+ return bulkInstantiationService.getJob(uuid);
+ }
+
+ @RequestMapping(value = "/error", method = RequestMethod.GET)
+ public void throwError() {
+ throw new GenericUncheckedException("dummy error");
+ }
+
+ @ExceptionHandler({IllegalArgumentException.class})
+ @ResponseStatus(value=BAD_REQUEST)
+ private ExceptionResponse exceptionHandlerBadRequest(Exception e) {
+ return ControllersUtils.handleException(e, LOGGER);
+ }
+
+ @ExceptionHandler(WebApplicationException.class)
+ private ResponseEntity webApplicationExceptionHandler(WebApplicationException e) {
+ return ControllersUtils.handleWebApplicationException(e, LOGGER);
+ }
+
+}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/AsyncInstantiationController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/AsyncInstantiationController.java
new file mode 100644
index 00000000..c5621a30
--- /dev/null
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/AsyncInstantiationController.java
@@ -0,0 +1,78 @@
+package org.onap.vid.controllers;
+
+
+import org.onap.vid.exceptions.OperationNotAllowedException;
+import org.onap.vid.model.ExceptionResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.exception.ExceptionUtils;
+
+import org.onap.vid.model.JobAuditStatus;
+import org.onap.vid.model.ServiceInfo;
+import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
+import org.onap.vid.mso.MsoResponseWrapper2;
+import org.onap.vid.services.AsyncInstantiationBusinessLogic;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.UUID;
+import static org.springframework.http.HttpStatus.METHOD_NOT_ALLOWED;
+
+
+@RestController
+@RequestMapping(AsyncInstantiationController.ASYNC_INSTANTIATION)
+public class AsyncInstantiationController extends VidRestrictedBaseController {
+
+ public static final String ASYNC_INSTANTIATION = "asyncInstantiation";
+
+ protected final AsyncInstantiationBusinessLogic asyncInstantiationBL;
+
+ @Autowired
+ public AsyncInstantiationController(AsyncInstantiationBusinessLogic asyncInstantiationBL) {
+ this.asyncInstantiationBL = asyncInstantiationBL;
+ }
+
+ @ExceptionHandler(OperationNotAllowedException.class)
+ @ResponseStatus(value=METHOD_NOT_ALLOWED)
+ public ExceptionResponse illegalStateExceptionHandler(Exception e) {
+ return ControllersUtils.handleException(e, LOGGER);
+ }
+
+ /**
+ * Gets the new services status.
+ * @param request the request
+ * @return the services list
+ */
+ @RequestMapping(method = RequestMethod.GET)
+ public List<ServiceInfo> getServicesInfo(HttpServletRequest request) {
+ return asyncInstantiationBL.getAllServicesInfo();
+ }
+
+ @RequestMapping(value = "bulk", method = RequestMethod.POST)
+ public MsoResponseWrapper2<List<String>> createBulkOfServices(@RequestBody ServiceInstantiation request, HttpServletRequest httpServletRequest) {
+ //Push to DB according the model
+
+ String userId = ControllersUtils.extractUserId(httpServletRequest);
+ List<UUID> uuids = asyncInstantiationBL.pushBulkJob(request, userId);
+
+ return new MsoResponseWrapper2(200, uuids);
+ }
+
+ @RequestMapping(value = "job/{jobId}", method = RequestMethod.DELETE)
+ public void deleteServiceInfo(@PathVariable("jobId") UUID jobId) {
+ asyncInstantiationBL.deleteJob(jobId);
+ }
+
+ @RequestMapping(value = "hide/{jobId}", method = RequestMethod.POST)
+ public void hideServiceInfo(@PathVariable("jobId") UUID jobId) {
+ asyncInstantiationBL.hideServiceInfo(jobId);
+ }
+
+ @RequestMapping(value = "auditStatus/{jobId}", method = RequestMethod.GET)
+ public List<JobAuditStatus> getJobAuditStatus(HttpServletRequest request, @PathVariable(value="jobId") UUID jobId, @RequestParam(value="source") JobAuditStatus.SourceStatus source){
+ return asyncInstantiationBL.getAuditStatuses(jobId, source);
+ }
+
+
+}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/ChangeManagementController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/ChangeManagementController.java
index fc5bc0b2..59fe61fd 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/ChangeManagementController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/ChangeManagementController.java
@@ -23,7 +23,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.WebApplicationException;
-import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
@@ -36,7 +35,6 @@ import static org.springframework.http.HttpStatus.*;
@RestController
@RequestMapping(ChangeManagementController.CHANGE_MANAGEMENT)
public class ChangeManagementController extends UnRestrictedBaseController {
- private static final String GetWorkflowsResponse = null;
public static final String VNF_WORKFLOW_RELATION = "vnf_workflow_relation";
public static final String CHANGE_MANAGEMENT = "change-management";
public static final String GET_VNF_WORKFLOW_RELATION = "get_vnf_workflow_relation";
@@ -57,13 +55,13 @@ public class ChangeManagementController extends UnRestrictedBaseController {
}
@RequestMapping(value = {"/workflow"}, method = RequestMethod.GET)
- public ResponseEntity<Collection<String>> getWorkflow(@RequestParam("vnfs") Collection<String> vnfs) throws IOException, InterruptedException {
+ public ResponseEntity<Collection<String>> getWorkflow(@RequestParam("vnfs") Collection<String> vnfs) {
Collection<String> result = this.workflowService.getWorkflowsForVNFs(vnfs);
return new ResponseEntity<>(result, OK);
}
@RequestMapping(value = {"/mso"}, method = RequestMethod.GET)
- public ResponseEntity<Collection<Request>> getMSOChangeManagements() throws Exception, IOException, InterruptedException {
+ public ResponseEntity<Collection<Request>> getMSOChangeManagements() {
Collection<Request> result = this.changeManagementService.getMSOChangeManagements();
return new ResponseEntity<>(result, OK);
@@ -94,20 +92,20 @@ public class ChangeManagementController extends UnRestrictedBaseController {
@RequestMapping(value = {"/scheduler"}, method = RequestMethod.GET)
- public ResponseEntity<JSONArray> getSchedulerChangeManagements() throws IOException, InterruptedException {
+ public ResponseEntity<JSONArray> getSchedulerChangeManagements() {
JSONArray result = this.changeManagementService.getSchedulerChangeManagements();
return new ResponseEntity<>(result, OK);
}
@RequestMapping(value = {SCHEDULER_BY_SCHEDULE_ID}, method = RequestMethod.DELETE)
- public ResponseEntity deleteSchedule(@PathVariable("scheduleId") String scheduleId) throws IOException, InterruptedException {
+ public ResponseEntity deleteSchedule(@PathVariable("scheduleId") String scheduleId) {
Pair<String, Integer> result = this.changeManagementService.deleteSchedule(scheduleId);
return ResponseEntity.status(result.getRight()).build();
}
@RequestMapping(value = {GET_VNF_WORKFLOW_RELATION}, method = RequestMethod.POST)
- public ResponseEntity getWorkflows(@RequestBody GetVnfWorkflowRelationRequest getVnfWorkflowRelationRequest) throws IOException, InterruptedException {
+ public ResponseEntity getWorkflows(@RequestBody GetVnfWorkflowRelationRequest getVnfWorkflowRelationRequest) {
try {
GetWorkflowsResponse response = new GetWorkflowsResponse(changeManagementService.getWorkflowsForVnf(getVnfWorkflowRelationRequest));
return ResponseEntity.status(OK).body(response);
@@ -122,7 +120,7 @@ public class ChangeManagementController extends UnRestrictedBaseController {
}
@RequestMapping(value = {VNF_WORKFLOW_RELATION}, method = RequestMethod.POST)
- public ResponseEntity createWorkflowRelation(@RequestBody VnfWorkflowRelationRequest vnfWorkflowRelationRequest) throws IOException, InterruptedException {
+ public ResponseEntity createWorkflowRelation(@RequestBody VnfWorkflowRelationRequest vnfWorkflowRelationRequest) {
VnfWorkflowRelationResponse vnfWorkflowRelationResponse;
try {
vnfWorkflowRelationResponse = changeManagementService.addVnfWorkflowRelation(vnfWorkflowRelationRequest);
@@ -135,7 +133,7 @@ public class ChangeManagementController extends UnRestrictedBaseController {
}
@RequestMapping(value = {VNF_WORKFLOW_RELATION}, method = RequestMethod.GET)
- public ResponseEntity getAllWorkflowRelation() throws IOException, InterruptedException {
+ public ResponseEntity getAllWorkflowRelation() {
try {
VnfWorkflowRelationAllResponse vnfWorkflowRelationAllResponse = changeManagementService.getAllVnfWorkflowRelations();
@@ -147,7 +145,7 @@ public class ChangeManagementController extends UnRestrictedBaseController {
}
@RequestMapping(value = {VNF_WORKFLOW_RELATION}, method = RequestMethod.DELETE)
- public ResponseEntity deleteWorkflowRelation(@RequestBody VnfWorkflowRelationRequest vnfWorkflowRelationRequest) throws IOException, InterruptedException {
+ public ResponseEntity deleteWorkflowRelation(@RequestBody VnfWorkflowRelationRequest vnfWorkflowRelationRequest) {
VnfWorkflowRelationResponse vnfWorkflowRelationResponse;
try {
vnfWorkflowRelationResponse = changeManagementService.deleteVnfWorkflowRelation(vnfWorkflowRelationRequest);
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/ControllersUtils.java b/vid-app-common/src/main/java/org/onap/vid/controllers/ControllersUtils.java
index 3f8cfa6a..1abe300e 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/ControllersUtils.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/ControllersUtils.java
@@ -6,9 +6,11 @@ import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.onap.portalsdk.core.util.SystemProperties;
import org.onap.vid.model.ExceptionResponse;
import org.slf4j.MDC;
+import org.springframework.http.ResponseEntity;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
+import javax.ws.rs.WebApplicationException;
import static com.att.eelf.configuration.Configuration.MDC_KEY_REQUEST_ID;
import static org.onap.vid.utils.Logging.getMethodName;
@@ -37,4 +39,9 @@ public class ControllersUtils {
ExceptionResponse exceptionResponse = new ExceptionResponse(e);
return exceptionResponse;
}
+
+ public static ResponseEntity handleWebApplicationException(WebApplicationException e, EELFLoggerDelegate logger) {
+ return ResponseEntity.status(e.getResponse().getStatus()).body(ControllersUtils.handleException(e, logger));
+ }
+
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/FeatureTogglingController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/FeatureTogglingController.java
new file mode 100644
index 00000000..36dfdaa0
--- /dev/null
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/FeatureTogglingController.java
@@ -0,0 +1,29 @@
+package org.onap.vid.controllers;
+
+import org.onap.vid.properties.Features;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("flags")
+public class FeatureTogglingController extends RestrictedBaseController {
+
+ @RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
+ public @ResponseBody Map<String,Boolean> getFeatureToggles()
+ {
+ HashMap<String,Boolean> flags = new HashMap <String, Boolean>();
+ for(Features flag : Features.values()){
+ flags.put(flag.name(), flag.isActive());
+ }
+ return flags;
+
+
+ }
+}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java
index 149c5bda..c3871da9 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java
@@ -116,10 +116,9 @@ public class HealthCheckController extends UnRestrictedBaseController {
* Used by IDNS for redundancy
* @return ResponseEntity The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
- */
+ */
@RequestMapping(value="/healthCheck",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public HealthStatus gethealthCheckStatusforIDNS() throws IOException, InterruptedException {
+ public HealthStatus gethealthCheckStatusforIDNS() {
String driver = SystemProperties.getProperty("db.driver");
String URL = SystemProperties.getProperty("db.connectionURL");
@@ -151,13 +150,12 @@ public class HealthCheckController extends UnRestrictedBaseController {
*
* @return ResponseEntity The response entity
* @throws IOException Signals that an I/O exception has occurred.
- * @throws InterruptedException the interrupted exception
* Project :
*/
@RequestMapping(value="rest/healthCheck/{User-Agent}/{X-ECOMP-RequestID}",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public HealthStatus getHealthCheck(
@PathVariable("User-Agent") String UserAgent,
- @PathVariable("X-ECOMP-RequestID") String ECOMPRequestID) throws IOException, InterruptedException {
+ @PathVariable("X-ECOMP-RequestID") String ECOMPRequestID) {
String driver = SystemProperties.getProperty("db.driver");
String URL = SystemProperties.getProperty("db.connectionURL");
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java
index c961f593..0976f403 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/MaintenanceController.java
@@ -21,17 +21,17 @@ import javax.ws.rs.ForbiddenException;
import java.util.Arrays;
import java.util.Collections;
-import static org.onap.vid.utils.Logging.getMethodName;
+import static org.onap.vid.utils.Logging.getMethodCallerName;
/**
* Controler for APIs that are used only by vid operators
*/
@RestController
-@RequestMapping(MaintenanceController.Maintenance)
+@RequestMapping(MaintenanceController.MAINTENANCE)
public class MaintenanceController extends UnRestrictedBaseController {
- public static final String Maintenance = "maintenance";
+ public static final String MAINTENANCE = "maintenance";
@Autowired
protected CategoryParameterService categoryParameterService;
@@ -45,12 +45,12 @@ public class MaintenanceController extends UnRestrictedBaseController {
*/
@RequestMapping(value = "/category_parameter/{categoryName}", method = RequestMethod.POST)
public ResponseEntity addCategoryOptions (
- HttpServletRequest request, @PathVariable String categoryName, @RequestBody AddCategoryOptionsRequest option) throws Exception {
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName());
+ HttpServletRequest request, @PathVariable String categoryName, @RequestBody AddCategoryOptionsRequest option) {
+ debugStartLog();
try {
AddCategoryOptionResponse response = categoryParameterService.createCategoryParameterOptions(categoryName, option);
HttpStatus httpStatus = response.getErrors().size()>0 ? HttpStatus.MULTI_STATUS : HttpStatus.OK;
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "end {}() => {}", getMethodName(), response);
+ debugEndLog(response);
return new ResponseEntity<>(response, httpStatus);
}
catch (CategoryParameterServiceImpl.UnfoundedCategoryException exception) {
@@ -64,12 +64,12 @@ public class MaintenanceController extends UnRestrictedBaseController {
@RequestMapping(value = "/category_parameter/{categoryName}", method = RequestMethod.PUT)
public ResponseEntity updateNameForOption (
- HttpServletRequest request, @PathVariable String categoryName, @RequestBody CategoryParameterOptionRep option) throws Exception {
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName());
+ HttpServletRequest request, @PathVariable String categoryName, @RequestBody CategoryParameterOptionRep option) {
+ debugStartLog();
try {
AddCategoryOptionResponse response = categoryParameterService.updateCategoryParameterOption(categoryName, option);
HttpStatus httpStatus = response.getErrors().size()>0 ? HttpStatus.MULTI_STATUS : HttpStatus.OK;
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "end {}() => {}", getMethodName(), response);
+ debugEndLog(response);
return new ResponseEntity<>(response, httpStatus);
}
catch (ForbiddenException exception) {
@@ -94,11 +94,11 @@ public class MaintenanceController extends UnRestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/category_parameter", method = RequestMethod.GET)
- public ResponseEntity getCategoryParameter(HttpServletRequest request, @RequestParam(value="familyName", required = true) Family familyName) throws Exception {
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName());
+ public ResponseEntity getCategoryParameter(HttpServletRequest request, @RequestParam(value="familyName", required = true) Family familyName) {
+ debugStartLog();
try {
CategoryParametersResponse response = categoryParameterService.getCategoryParameters(familyName);
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "end {}() => {}", getMethodName(), response);
+ debugEndLog(response);
return new ResponseEntity<>(response, HttpStatus.OK);
}
catch (Exception exception) {
@@ -115,12 +115,12 @@ public class MaintenanceController extends UnRestrictedBaseController {
*/
@RequestMapping(value = "/delete_category_parameter/{categoryName}", method = RequestMethod.POST)
public ResponseEntity deleteCategoryOption (
- HttpServletRequest request, @PathVariable String categoryName, @RequestBody CategoryParameterOption option) throws Exception {
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName());
+ HttpServletRequest request, @PathVariable String categoryName, @RequestBody CategoryParameterOption option) {
+ debugStartLog();
try {
categoryParameterService.deleteCategoryOption(categoryName, option);
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "end {}() => {}", getMethodName(), HttpStatus.OK);
+ debugEndLog(HttpStatus.OK);
return new ResponseEntity<>(HttpStatus.OK);
}
catch (CategoryParameterServiceImpl.UnfoundedCategoryException exception) {
@@ -132,4 +132,11 @@ public class MaintenanceController extends UnRestrictedBaseController {
}
}
+ private void debugStartLog() {
+ LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodCallerName());
+ }
+
+ private void debugEndLog(Object response) {
+ LOGGER.debug(EELFLoggerDelegate.debugLogger, "end {}() => {}", getMethodCallerName(), response);
+ }
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/MsoConfig.java b/vid-app-common/src/main/java/org/onap/vid/controllers/MsoConfig.java
index f3dbf5df..aa0b1ad3 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/MsoConfig.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/MsoConfig.java
@@ -8,6 +8,7 @@ import org.onap.vid.mso.MsoInterface;
import org.onap.vid.mso.rest.MsoRestClientNew;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.togglz.core.manager.FeatureManager;
@Configuration
@@ -34,8 +35,8 @@ public class MsoConfig {
}
@Bean
- public MsoBusinessLogic getMsoBusinessLogic(){
- return new MsoBusinessLogicImpl(getMsoClient());
+ public MsoBusinessLogic getMsoBusinessLogic(MsoInterface msoClient, FeatureManager featureManager){
+ return new MsoBusinessLogicImpl(msoClient, featureManager);
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/MsoController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/MsoController.java
index deebb2b7..62c64b75 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/MsoController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/MsoController.java
@@ -27,6 +27,7 @@ import org.onap.vid.mso.MsoBusinessLogic;
import org.onap.vid.mso.MsoResponseWrapper;
import org.onap.vid.mso.rest.Request;
import org.onap.vid.mso.rest.RequestDetails;
+import org.onap.vid.mso.rest.RequestDetailsWrapper;
import org.onap.vid.mso.rest.Task;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
@@ -46,6 +47,8 @@ import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
+import static org.onap.vid.utils.Logging.getMethodName;
+
//import java.util.UUID;
//import org.springframework.http.ResponseEntity;
//import org.springframework.http.RequestEntity;
@@ -65,7 +68,7 @@ public class MsoController extends RestrictedBaseController {
/**
* The Constant dateFormat.
*/
- final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS");
+ private final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS");
/**
* The Constant SVC_INSTANCE_ID.
@@ -98,7 +101,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_create_svc_instance", method = RequestMethod.POST)
- public ResponseEntity<String> createSvcInstance(HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ public ResponseEntity<String> createSvcInstance(HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "createSvcInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -119,7 +122,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_create_e2e_svc_instance", method = RequestMethod.POST)
- public ResponseEntity<String> createE2eSvcInstance(HttpServletRequest request, @RequestBody LinkedHashMap<String, Object> mso_request) throws Exception {
+ public ResponseEntity<String> createE2eSvcInstance(HttpServletRequest request, @RequestBody LinkedHashMap<String, Object> mso_request) {
String methodName = "createE2eSvcInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -141,7 +144,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_create_vnf_instance/{serviceInstanceId}", method = RequestMethod.POST)
- public ResponseEntity<String> createVnf(@PathVariable("serviceInstanceId") String serviceInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ public ResponseEntity<String> createVnf(@PathVariable("serviceInstanceId") String serviceInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) {
MsoResponseWrapper w = msoBusinessLogic.createVnf(mso_request, serviceInstanceId);
@@ -160,7 +163,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_create_nw_instance/{serviceInstanceId}", method = RequestMethod.POST)
- public ResponseEntity<String> createNwInstance(@PathVariable("serviceInstanceId") String serviceInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ public ResponseEntity<String> createNwInstance(@PathVariable("serviceInstanceId") String serviceInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "createNwInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start, serviceInstanceId = " + serviceInstanceId);
@@ -181,7 +184,7 @@ public class MsoController extends RestrictedBaseController {
*/
@RequestMapping(value = "/mso_create_volumegroup_instance/{serviceInstanceId}/vnfs/{vnfInstanceId}", method = RequestMethod.POST)
public ResponseEntity<String> createVolumeGroupInstance(@PathVariable("serviceInstanceId") String serviceInstanceId, @PathVariable("vnfInstanceId") String vnfInstanceId,
- HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "createVolumeGroupInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -202,7 +205,7 @@ public class MsoController extends RestrictedBaseController {
*/
@RequestMapping(value = "/mso_create_vfmodule_instance/{serviceInstanceId}/vnfs/{vnfInstanceId}", method = RequestMethod.POST)
public ResponseEntity<String> createVfModuleInstance(@PathVariable("serviceInstanceId") String serviceInstanceId,
- @PathVariable("vnfInstanceId") String vnfInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ @PathVariable("vnfInstanceId") String vnfInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "createVfModuleInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -224,7 +227,7 @@ public class MsoController extends RestrictedBaseController {
*/
@RequestMapping(value = "/mso_create_configuration_instance/{serviceInstanceId}/configurations/", method = RequestMethod.POST)
public ResponseEntity<String> createConfigurationInstance(@PathVariable("serviceInstanceId") String serviceInstanceId,
- HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ HttpServletRequest request, @RequestBody RequestDetailsWrapper mso_request) {
String methodName = "createConfigurationInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -245,10 +248,10 @@ public class MsoController extends RestrictedBaseController {
*/
@RequestMapping(value = "/mso_delete_e2e_svc_instance/{serviceInstanceId}", method = RequestMethod.POST)
public ResponseEntity<String> deleteE2eSvcInstance(@PathVariable("serviceInstanceId") String serviceInstanceId,
- HttpServletRequest request, @RequestBody LinkedHashMap<String, Object> mso_request) throws Exception {
+ HttpServletRequest request, @RequestBody LinkedHashMap<String, Object> mso_request) {
String methodName = "deleteE2eSvcInstance";
- LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
+ LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName(), mso_request);
MsoResponseWrapper w = msoBusinessLogic.deleteE2eSvcInstance(mso_request.get("requestDetails"), serviceInstanceId);
@@ -267,20 +270,18 @@ public class MsoController extends RestrictedBaseController {
* @return the response entity
* @throws Exception the exception
*/
+
@RequestMapping(value = "/mso_delete_svc_instance/{serviceInstanceId}", method = RequestMethod.POST)
- public ResponseEntity<String> deleteSvcInstance(@PathVariable("serviceInstanceId") String serviceInstanceId,
- HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ public String deleteSvcInstance(@PathVariable("serviceInstanceId") String serviceInstanceId,
+ HttpServletRequest request, @RequestBody RequestDetails mso_request,
+ @RequestParam(value = "serviceStatus") String serviceStatus) {
String methodName = "deleteSvcInstance";
- LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
-
- MsoResponseWrapper w = msoBusinessLogic.deleteSvcInstance(mso_request, serviceInstanceId);
-
- LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w=" + w.getResponse());
+ LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName(), mso_request);
+ MsoResponseWrapper w = msoBusinessLogic.deleteSvcInstance(mso_request, serviceInstanceId, serviceStatus);
// always return OK, the MSO status code is embedded in the body
- return (new ResponseEntity<String>(w.getResponse(), HttpStatus.OK));
-
+ return w.getResponse();
}
/**
@@ -295,7 +296,7 @@ public class MsoController extends RestrictedBaseController {
@RequestMapping(value = "/mso_delete_vnf_instance/{serviceInstanceId}/vnfs/{vnfInstanceId}", method = RequestMethod.POST)
public ResponseEntity<String> deleteVnf(@PathVariable("serviceInstanceId") String serviceInstanceId, @PathVariable("vnfInstanceId") String vnfInstanceId,
- HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "deleteVnf";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -320,7 +321,7 @@ public class MsoController extends RestrictedBaseController {
public ResponseEntity<String> deleteConfiguration(
@PathVariable("serviceInstanceId") String serviceInstanceId,
@PathVariable ("configurationId") String configurationId,
- @RequestBody RequestDetails mso_request) throws Exception {
+ @RequestBody RequestDetailsWrapper mso_request) {
String methodName = "deleteConfiguration";
LOGGER.debug(EELFLoggerDelegate.debugLogger,
@@ -345,7 +346,7 @@ public class MsoController extends RestrictedBaseController {
public ResponseEntity<String> activateConfiguration(
@PathVariable("serviceInstanceId") String serviceInstanceId,
@PathVariable("configurationId") String configurationId,
- @RequestBody RequestDetails mso_request) throws Exception {
+ @RequestBody RequestDetails mso_request) {
MsoResponseWrapper w = msoBusinessLogic.setConfigurationActiveStatus(mso_request, serviceInstanceId, configurationId, true);
@@ -366,7 +367,7 @@ public class MsoController extends RestrictedBaseController {
public ResponseEntity<String> deactivateConfiguration(
@PathVariable("serviceInstanceId") String serviceInstanceId,
@PathVariable("configurationId") String configurationId,
- @RequestBody RequestDetails mso_request) throws Exception {
+ @RequestBody RequestDetails mso_request) {
MsoResponseWrapper w = msoBusinessLogic.setConfigurationActiveStatus(mso_request, serviceInstanceId, configurationId, false);
@@ -387,7 +388,7 @@ public class MsoController extends RestrictedBaseController {
public ResponseEntity<String> disablePortOnConfiguration(
@PathVariable("serviceInstanceId") String serviceInstanceId,
@PathVariable("configurationId") String configurationId,
- @RequestBody RequestDetails mso_request) throws Exception {
+ @RequestBody RequestDetails mso_request) {
MsoResponseWrapper w = msoBusinessLogic.setPortOnConfigurationStatus(mso_request, serviceInstanceId, configurationId, false);
@@ -408,7 +409,7 @@ public class MsoController extends RestrictedBaseController {
public ResponseEntity<String> enablePortOnConfiguration(
@PathVariable("serviceInstanceId") String serviceInstanceId,
@PathVariable("configurationId") String configurationId,
- @RequestBody RequestDetails mso_request) throws Exception {
+ @RequestBody RequestDetails mso_request) {
MsoResponseWrapper w = msoBusinessLogic.setPortOnConfigurationStatus(mso_request, serviceInstanceId, configurationId, true);
@@ -430,7 +431,7 @@ public class MsoController extends RestrictedBaseController {
@RequestMapping(value = "/mso_delete_vfmodule_instance/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfModuleId}", method = RequestMethod.POST)
public ResponseEntity<String> deleteVfModule(
@PathVariable("serviceInstanceId") String serviceInstanceId, @PathVariable("vnfInstanceId") String vnfInstanceId,
- @PathVariable("vfModuleId") String vfModuleId, HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ @PathVariable("vfModuleId") String vfModuleId, HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "deleteVfModule";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -439,7 +440,6 @@ public class MsoController extends RestrictedBaseController {
// always return OK, the MSO status code is embedded in the body
return (new ResponseEntity<String>(w.getResponse(), HttpStatus.OK));
-
}
/**
@@ -455,7 +455,7 @@ public class MsoController extends RestrictedBaseController {
@RequestMapping(value = "/mso_delete_volumegroup_instance/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupId}", method = RequestMethod.POST)
public ResponseEntity<String> deleteVolumeGroupInstance(
@PathVariable("serviceInstanceId") String serviceInstanceId, @PathVariable("vnfInstanceId") String vnfInstanceId, @PathVariable("volumeGroupId") String volumeGroupId,
- HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "deleteVolumeGroupInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -476,7 +476,7 @@ public class MsoController extends RestrictedBaseController {
*/
@RequestMapping(value = "/mso_delete_nw_instance/{serviceInstanceId}/networks/{networkInstanceId}", method = RequestMethod.POST)
public ResponseEntity<String> deleteNwInstance(@PathVariable("serviceInstanceId") String serviceInstanceId,
- @PathVariable("networkInstanceId") String networkInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) throws Exception {
+ @PathVariable("networkInstanceId") String networkInstanceId, HttpServletRequest request, @RequestBody RequestDetails mso_request) {
String methodName = "deleteNwInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -484,7 +484,6 @@ public class MsoController extends RestrictedBaseController {
// always return OK, the MSO status code is embedded in the body
return (new ResponseEntity<String>(w.getResponse(), HttpStatus.OK));
-
}
/**
@@ -497,7 +496,7 @@ public class MsoController extends RestrictedBaseController {
*/
@RequestMapping(value = "/mso_get_orch_req/{requestId}", method = RequestMethod.GET)
public ResponseEntity<String> getOrchestrationRequest(@PathVariable("requestId") String requestId,
- HttpServletRequest request) throws Exception {
+ HttpServletRequest request) {
String methodName = "getOrchestrationRequest";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -509,7 +508,6 @@ public class MsoController extends RestrictedBaseController {
return (new ResponseEntity<String>(w.getResponse(), HttpStatus.OK));
}
-
/**
* Gets the orchestration requests.
*
@@ -520,7 +518,7 @@ public class MsoController extends RestrictedBaseController {
*/
@RequestMapping(value = "/mso_get_orch_reqs/{filterString}", method = RequestMethod.GET)
public ResponseEntity<String> getOrchestrationRequests(@PathVariable("filterString") String filterString,
- HttpServletRequest request) throws Exception {
+ HttpServletRequest request) {
String methodName = "getOrchestrationRequests";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -532,7 +530,6 @@ public class MsoController extends RestrictedBaseController {
return (new ResponseEntity<String>(w.getResponse(), HttpStatus.OK));
}
-
/**
* activate to a pnf instance.
*
@@ -542,7 +539,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_activate_service_instance/{serviceInstanceId}", method = RequestMethod.POST)
- public ResponseEntity<String> activateServiceInstance(@PathVariable("serviceInstanceId") String serviceInstanceId, @RequestBody RequestDetails requestDetails) throws Exception {
+ public ResponseEntity<String> activateServiceInstance(@PathVariable("serviceInstanceId") String serviceInstanceId, @RequestBody RequestDetails requestDetails) {
String methodName = "activateServiceInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -559,7 +556,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_deactivate_service_instance/{serviceInstanceId}", method = RequestMethod.POST)
- public ResponseEntity<String> deactivateServiceInstance(@PathVariable("serviceInstanceId") String serviceInstanceId, @RequestBody RequestDetails requestDetails) throws Exception {
+ public ResponseEntity<String> deactivateServiceInstance(@PathVariable("serviceInstanceId") String serviceInstanceId, @RequestBody RequestDetails requestDetails) {
String methodName = "deactivateServiceInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -567,7 +564,6 @@ public class MsoController extends RestrictedBaseController {
return new ResponseEntity<>(w.getResponse(), HttpStatus.OK);
}
-
/**
* Gets the orchestration requests for the dashboard.
* currently its all the orchestration requests with RequestType updateInstance or replaceInstance.
@@ -575,7 +571,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_get_orch_reqs/dashboard", method = RequestMethod.GET)
- public List<Request> getOrchestrationRequestsForDashboard() throws Exception {
+ public List<Request> getOrchestrationRequestsForDashboard() {
String methodName = "getOrchestrationRequestsForDashboard";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -592,7 +588,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_get_man_task/{originalRequestId}", method = RequestMethod.GET)
- public List<Task> getManualTasksByRequestId(@PathVariable("originalRequestId") String originalRequestId) throws Exception {
+ public List<Task> getManualTasksByRequestId(@PathVariable("originalRequestId") String originalRequestId) {
String methodName = "getManualTasksByRequestId";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -600,8 +596,6 @@ public class MsoController extends RestrictedBaseController {
return msoBusinessLogic.getManualTasksByRequestId(originalRequestId);
}
-
-
/**
* Complete the manual task.
*
@@ -611,7 +605,7 @@ public class MsoController extends RestrictedBaseController {
* @throws Exception the exception
*/
@RequestMapping(value = "/mso_post_man_task/{taskId}", method = RequestMethod.POST)
- public ResponseEntity<String> manualTaskComplete(@PathVariable("taskId") String taskId , @RequestBody RequestDetails requestDetails) throws Exception {
+ public ResponseEntity<String> manualTaskComplete(@PathVariable("taskId") String taskId , @RequestBody RequestDetails requestDetails) {
String methodName = "manualTaskComplete";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -622,7 +616,7 @@ public class MsoController extends RestrictedBaseController {
@RequestMapping(value = "/mso_remove_relationship/{serviceInstanceId}", method = RequestMethod.POST)
public ResponseEntity<String> removeRelationshipFromServiceInstance(@PathVariable("serviceInstanceId") String serviceInstanceId ,
- @RequestBody RequestDetails requestDetails) throws Exception {
+ @RequestBody RequestDetails requestDetails) {
String methodName = "removeRelationshipFromServiceInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -639,7 +633,7 @@ public class MsoController extends RestrictedBaseController {
@RequestMapping(value = "/mso_add_relationship/{serviceInstanceId}", method = RequestMethod.POST)
public ResponseEntity<String> addRelationshipToServiceInstance(@PathVariable("serviceInstanceId") String serviceInstanceId ,
- @RequestBody RequestDetails requestDetails) throws Exception {
+ @RequestBody RequestDetails requestDetails) {
String methodName = "addRelationshipToServiceInstance";
LOGGER.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start");
@@ -654,7 +648,6 @@ public class MsoController extends RestrictedBaseController {
return new ResponseEntity<>(w.getResponse(), HttpStatus.OK);
}
-
/**
* Exception handler.
*
@@ -697,5 +690,4 @@ public class MsoController extends RestrictedBaseController {
response.flushBuffer();
}
-
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/OperationalEnvironmentController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/OperationalEnvironmentController.java
index fd8ae140..3b6a3f78 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/OperationalEnvironmentController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/OperationalEnvironmentController.java
@@ -5,8 +5,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.MoreObjects;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.onap.portalsdk.core.controller.RestrictedBaseController;
-import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.onap.vid.changeManagement.RequestDetailsWrapper;
import org.onap.vid.model.ExceptionResponse;
import org.onap.vid.model.RequestReferencesContainer;
@@ -19,6 +17,7 @@ import org.onap.vid.mso.model.OperationalEnvironmentDeactivateInfo;
import org.onap.vid.mso.rest.MsoRestClientNew;
import org.onap.vid.mso.rest.OperationalEnvironment.OperationEnvironmentRequestDetails;
import org.onap.vid.mso.rest.RequestDetails;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MissingServletRequestParameterException;
@@ -35,13 +34,11 @@ import java.util.stream.Stream;
import static org.onap.vid.utils.Logging.getMethodCallerName;
import static org.onap.vid.utils.Logging.getMethodName;
-import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
@RestController
@RequestMapping("operationalEnvironment")
-public class OperationalEnvironmentController extends RestrictedBaseController {
+public class OperationalEnvironmentController extends VidRestrictedBaseController {
- private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(OperationalEnvironmentController.class);
private final RestMsoImplementation restMso;
private final MsoBusinessLogic msoBusinessLogic;
@@ -55,8 +52,8 @@ public class OperationalEnvironmentController extends RestrictedBaseController {
}
@RequestMapping(value = "/create", method = RequestMethod.POST)
- public MsoResponseWrapper2 createOperationalEnvironment(HttpServletRequest request, @RequestBody OperationalEnvironmentCreateBody operationalEnvironment) throws Exception {
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName(), operationalEnvironment);
+ public MsoResponseWrapper2 createOperationalEnvironment(HttpServletRequest request, @RequestBody OperationalEnvironmentCreateBody operationalEnvironment) {
+ debugStart(operationalEnvironment);
String userId = ControllersUtils.extractUserId(request);
RequestDetailsWrapper<OperationEnvironmentRequestDetails> requestDetailsWrapper = msoBusinessLogic.convertParametersToRequestDetails(operationalEnvironment, userId);
String path = msoBusinessLogic.getOperationalEnvironmentCreationPath();
@@ -69,7 +66,7 @@ public class OperationalEnvironmentController extends RestrictedBaseController {
@RequestMapping(value = "/activate", method = RequestMethod.POST)
public MsoResponseWrapper2 activate(HttpServletRequest request,
@RequestParam("operationalEnvironment") String operationalEnvironmentId,
- @RequestBody OperationalEnvironmentActivateBody activateRequest) throws Exception {
+ @RequestBody OperationalEnvironmentActivateBody activateRequest) throws MissingServletRequestParameterException {
verifyIsNotEmpty(operationalEnvironmentId, "operationalEnvironment");
@@ -96,7 +93,7 @@ public class OperationalEnvironmentController extends RestrictedBaseController {
@RequestMapping(value = "/deactivate", method = RequestMethod.POST)
public MsoResponseWrapper2 deactivate(HttpServletRequest request,
@RequestParam("operationalEnvironment") String operationalEnvironmentId,
- @RequestBody Map deactivationRequest) throws Exception {
+ @RequestBody Map deactivationRequest) throws MissingServletRequestParameterException {
verifyIsNotEmpty(operationalEnvironmentId, "operationalEnvironment");
@@ -116,9 +113,9 @@ public class OperationalEnvironmentController extends RestrictedBaseController {
}
@RequestMapping(value = "/requestStatus", method = RequestMethod.GET)
- public MsoResponseWrapper2 status(HttpServletRequest request, @RequestParam("requestId") String requestId) throws Exception {
+ public MsoResponseWrapper2 status(HttpServletRequest request, @RequestParam("requestId") String requestId) throws MissingServletRequestParameterException {
- LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName(), requestId);
+ debugStart(requestId);
verifyIsNotEmpty(requestId, "requestId");
String path = msoBusinessLogic.getCloudResourcesRequestsStatusPath(requestId);
@@ -129,12 +126,6 @@ public class OperationalEnvironmentController extends RestrictedBaseController {
return new MsoResponseWrapper2<>(msoResponse);
}
- @ExceptionHandler(Exception.class)
- @ResponseStatus(value=INTERNAL_SERVER_ERROR)
- private ExceptionResponse exceptionHandler(Exception e) {
- return ControllersUtils.handleException(e, LOGGER);
- }
-
@ExceptionHandler({
org.springframework.web.bind.MissingServletRequestParameterException.class,
BadManifestException.class
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/PolicyController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/PolicyController.java
index 7519053a..80b4739d 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/PolicyController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/PolicyController.java
@@ -21,9 +21,9 @@
package org.onap.vid.controllers;
import org.json.simple.JSONObject;
+import org.onap.vid.policy.*;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.onap.vid.policy.*;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
@@ -45,7 +45,7 @@ public class PolicyController extends RestrictedBaseController{
private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(PolicyController.class);
@RequestMapping(value="/get_policy",method = RequestMethod.POST)
- public ResponseEntity<String> getPolicyInfo( HttpServletRequest request, @RequestBody JSONObject policy_request) throws Exception {
+ public ResponseEntity<String> getPolicyInfo( HttpServletRequest request, @RequestBody JSONObject policy_request) {
LOGGER.debug("#####################POLICY API CALL STARTED ###############"+ PolicyProperties.POLICY_GET_CONFIG_VAL);
LOGGER.debug("#####################Policy Request ###############"+policy_request.toString());
@@ -58,7 +58,7 @@ public class PolicyController extends RestrictedBaseController{
return ( new ResponseEntity<String>(policyResWrapper.getResponse(), HttpStatus.valueOf(policyResWrapper.getStatus())) );
}
- protected static PolicyResponseWrapper getPolicyConfig(JSONObject request, String path) throws Exception {
+ protected static PolicyResponseWrapper getPolicyConfig(JSONObject request, String path) {
String methodName = "getPolicyConfig";
String uuid = UUID.randomUUID().toString();
LOGGER.debug( "starting getPolicyConfig ");
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/ProbeController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/ProbeController.java
new file mode 100644
index 00000000..a2145de3
--- /dev/null
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/ProbeController.java
@@ -0,0 +1,27 @@
+package org.onap.vid.controllers;
+
+import org.onap.vid.aai.AaiClient;
+import org.onap.vid.model.probes.ExternalComponentStatus;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+@RequestMapping("probe")
+public class ProbeController extends RestrictedBaseController {
+ @Autowired
+ private AaiClient aaiClient;
+
+ @RequestMapping(method= RequestMethod.GET)
+ public List<ExternalComponentStatus> getProbe(){
+ List<ExternalComponentStatus> componentStatuses = new ArrayList<>();
+ componentStatuses.add(aaiClient.probeAaiGetAllSubscribers());
+ return componentStatuses;
+ }
+
+}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/PropertyController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/PropertyController.java
index 8066507a..2c823863 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/PropertyController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/PropertyController.java
@@ -20,12 +20,12 @@
package org.onap.vid.controllers;
-import org.onap.portalsdk.core.controller.RestrictedBaseController;
-import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.onap.portalsdk.core.util.SystemProperties;
import org.onap.vid.category.CategoryParametersResponse;
import org.onap.vid.model.CategoryParameter.Family;
import org.onap.vid.services.CategoryParameterService;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.util.SystemProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -79,7 +79,7 @@ public class PropertyController extends RestrictedBaseController{
*/
@RequestMapping(value = "/get_property/{name}/{defaultvalue}", method = RequestMethod.GET)
public ResponseEntity<String> getProperty (@PathVariable("name") String name, @PathVariable("defaultvalue") String defaultvalue,
- HttpServletRequest request) throws Exception {
+ HttpServletRequest request) {
String methodName = "getProperty";
ResponseEntity<String> resp = null;
@@ -115,7 +115,7 @@ public class PropertyController extends RestrictedBaseController{
* @throws Exception the exception
*/
@RequestMapping(value = "/category_parameter", method = RequestMethod.GET)
- public ResponseEntity getCategoryParameter(HttpServletRequest request, @RequestParam(value="familyName", required = true) Family familyName) throws Exception {
+ public ResponseEntity getCategoryParameter(HttpServletRequest request, @RequestParam(value="familyName", required = true) Family familyName) {
LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({})", getMethodName());
try {
CategoryParametersResponse response = categoryParameterService.getCategoryParameters(familyName);
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/RoleGeneratorController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/RoleGeneratorController.java
index 2dbb4d11..dd6388d8 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/RoleGeneratorController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/RoleGeneratorController.java
@@ -1,27 +1,22 @@
package org.onap.vid.controllers;
-import fj.test.Bool;
-import org.json.JSONObject;
-import org.onap.portalsdk.core.controller.UnRestrictedBaseController;
import org.onap.vid.services.RoleGeneratorService;
+import org.onap.portalsdk.core.controller.UnRestrictedBaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
-import javax.servlet.http.HttpServletRequest;
-
@RestController
public class RoleGeneratorController extends UnRestrictedBaseController {
@Autowired
private RoleGeneratorService roleGeneratorService;
public static final String GENERATE_ROLE_SCRIPT = "generateRoleScript";
@RequestMapping(value = GENERATE_ROLE_SCRIPT +"/{firstRun}", method = RequestMethod.GET )
- public ResponseEntity<String> generateRoleScript (@PathVariable("firstRun") boolean firstRun) throws Exception {
+ public ResponseEntity<String> generateRoleScript (@PathVariable("firstRun") boolean firstRun) {
ResponseEntity<String> response = null;
String query = roleGeneratorService.generateRoleScript(firstRun);
response = new ResponseEntity<String>(query, HttpStatus.OK);
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/VidController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/VidController.java
index 41abdee5..6d6ffb31 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/VidController.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/VidController.java
@@ -20,22 +20,21 @@
package org.onap.vid.controllers;
-import org.onap.portalsdk.core.controller.RestrictedBaseController;
-import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
import org.onap.vid.asdc.AsdcCatalogException;
import org.onap.vid.asdc.beans.SecureServices;
import org.onap.vid.exceptions.VidServiceUnavailableException;
+import org.onap.vid.model.PombaInstance.PombaRequest;
import org.onap.vid.model.ServiceModel;
import org.onap.vid.roles.Role;
import org.onap.vid.roles.RoleProvider;
import org.onap.vid.services.AaiService;
+import org.onap.vid.services.PombaService;
import org.onap.vid.services.VidService;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
@@ -51,8 +50,7 @@ public class VidController extends RestrictedBaseController {
private final VidService service;
@Autowired
- public VidController(VidService vidService) throws SdcToscaParserException{
-
+ public VidController(VidService vidService) {
service = vidService;
}
@@ -62,6 +60,9 @@ public class VidController extends RestrictedBaseController {
@Autowired
RoleProvider roleProvider;
+ @Autowired
+ private PombaService pombaService;
+
// /**
// * Gets the services.
// *
@@ -112,7 +113,6 @@ public class VidController extends RestrictedBaseController {
}
catch (Exception t) {
LOG.debug("Unexpected error while retrieving service definitions from A&AI: " + t.getMessage() + ":", t);
- t.printStackTrace();
throw new VidServiceUnavailableException("Unexpected error while retrieving service definitions from A&AI: " + t.getMessage(), t);
}
}
@@ -131,11 +131,16 @@ public class VidController extends RestrictedBaseController {
try {
return service.getService(uuid);
} catch (AsdcCatalogException e) {
- LOG.error("Failed to retrieve service definitions from SDC", e);
+ LOG.error("Failed to retrieve service definitions from SDC. Error: "+e.getMessage() , e);
throw new VidServiceUnavailableException("Failed to retrieve service definitions from SDC", e);
}
}
+ @RequestMapping(value = "/rest/models/reset", method = RequestMethod.POST)
+ @ResponseStatus(HttpStatus.ACCEPTED)
+ public void invalidateServiceModelCache(HttpServletRequest request) {
+ service.invalidateServiceCache();
+ }
/**
* Gets the services view.
@@ -145,7 +150,12 @@ public class VidController extends RestrictedBaseController {
* @throws VidServiceUnavailableException the vid service unavailable exception
*/
@RequestMapping(value={"/serviceModels"}, method=RequestMethod.GET)
- public ModelAndView getServicesView(HttpServletRequest request) throws VidServiceUnavailableException {
- return new ModelAndView("serviceModels");
- }
+ public ModelAndView getServicesView(HttpServletRequest request) {
+ return new ModelAndView("serviceModels");
+ }
+
+ @RequestMapping(value = {"/rest/models/services/verifyService"}, method = RequestMethod.POST)
+ public void verifyServiceInstance(HttpServletRequest request, @RequestBody PombaRequest pombaRequest) {
+ pombaService.verify(pombaRequest);
+ }
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/VidRestrictedBaseController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/VidRestrictedBaseController.java
new file mode 100644
index 00000000..b520bc02
--- /dev/null
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/VidRestrictedBaseController.java
@@ -0,0 +1,43 @@
+package org.onap.vid.controllers;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.exception.ExceptionUtils;
+import org.onap.vid.model.ExceptionResponse;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
+
+import static org.onap.vid.utils.Logging.getMethodCallerName;
+import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
+
+public abstract class VidRestrictedBaseController extends RestrictedBaseController {
+
+ protected final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(this.getClass().getName());
+
+ @ExceptionHandler(MethodArgumentTypeMismatchException.class)
+ @ResponseBody
+ public ResponseEntity handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e) {
+ LOGGER.error(EELFLoggerDelegate.errorLogger, "{}: {}", getMethodCallerName(), ExceptionUtils.getMessage(e), e);
+ Class<?> type = e.getRequiredType();
+ String message;
+ if (type.isEnum()) {
+ message = "The parameter " + e.getName() + " must have a value among : " + StringUtils.join(type.getEnumConstants(), ", ");
+ }
+ else {
+ message = "The parameter " + e.getName() + " must be of type " + type.getTypeName();
+ }
+ ResponseEntity response = new ResponseEntity<String>(message, HttpStatus.BAD_REQUEST);
+ return response;
+ }
+
+ @ExceptionHandler(Exception.class)
+ @ResponseStatus(value=INTERNAL_SERVER_ERROR)
+ public ExceptionResponse exceptionHandler(Exception e) {
+ return ControllersUtils.handleException(e, LOGGER);
+ }
+}
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/WebConfig.java b/vid-app-common/src/main/java/org/onap/vid/controllers/WebConfig.java
index 295a5fce..22e47600 100644
--- a/vid-app-common/src/main/java/org/onap/vid/controllers/WebConfig.java
+++ b/vid-app-common/src/main/java/org/onap/vid/controllers/WebConfig.java
@@ -1,36 +1,30 @@
package org.onap.vid.controllers;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.commons.io.IOUtils;
-import org.json.JSONObject;
-import org.json.JSONTokener;
-import org.onap.vid.aai.AaiClient;
-import org.onap.vid.aai.AaiClientInterface;
+import org.onap.vid.aai.*;
+import org.onap.vid.aai.model.PortDetailsTranslator;
+import org.onap.vid.aai.util.AAIRestInterface;
+import org.onap.vid.aai.util.HttpsAuthClient;
import org.onap.vid.asdc.AsdcClient;
-import org.onap.vid.asdc.local.LocalAsdcClient;
-import org.onap.vid.asdc.memory.InMemoryAsdcClient;
import org.onap.vid.asdc.parser.ToscaParserImpl2;
import org.onap.vid.asdc.rest.RestfulAsdcClient;
-import org.onap.vid.controllers.VidController;
+import org.onap.vid.exceptions.GenericUncheckedException;
import org.onap.vid.properties.AsdcClientConfiguration;
-import org.onap.vid.properties.AsdcClientConfiguration.AsdcClientType;
-import org.onap.vid.services.AaiService;
-import org.onap.vid.services.AaiServiceImpl;
-import org.onap.vid.services.VidService;
-import org.onap.vid.services.VidServiceImpl;
+import org.onap.vid.services.*;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.togglz.core.manager.FeatureManager;
import javax.net.ssl.SSLContext;
+import javax.servlet.ServletContext;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
@Configuration
public class WebConfig {
@@ -46,73 +40,76 @@ public class WebConfig {
}
+ @Bean
+ public VidService vidService(AsdcClient asdcClient, FeatureManager featureManager) {
+ return new VidServiceImpl(asdcClient, featureManager);
+ }
+ @Bean
+ public AaiService getAaiService() {
+ return new AaiServiceImpl();
+ }
@Bean
- public VidService vidService(AsdcClient asdcClient) {
- return new VidServiceImpl(asdcClient);
+ public AaiResponseTranslator aaiResponseTranslator() {
+ return new AaiResponseTranslator();
}
@Bean
- public AaiService getAaiService(){
- return new AaiServiceImpl();
+ public PortDetailsTranslator portDetailsTranslator() {
+ return new PortDetailsTranslator();
+ }
+
+ @Bean
+ public AaiClientInterface getAaiRestInterface(@Qualifier("aaiRestInterface") AAIRestInterface restController, PortDetailsTranslator portsDetailsTranslator) {
+ return new AaiClient(restController, portsDetailsTranslator);
+ }
+
+ @Bean(name = "aaiRestInterface")
+ public AAIRestInterface aaiRestInterface(HttpsAuthClient httpsAuthClientFactory) {
+ return new AAIRestInterface(httpsAuthClientFactory);
}
@Bean
- public AaiClientInterface getAaiClientInterface(){
- return new AaiClient();
+ public PombaRestInterface getPombaRestInterface(HttpsAuthClient httpsAuthClientFactory) {
+ return new PombaRestInterface(httpsAuthClientFactory);
}
@Bean
- public AsdcClient asdcClient(AsdcClientConfiguration asdcClientConfig) throws IOException {
- switch (asdcClientConfig.getAsdcClientType()) {
- case IN_MEMORY:
- final InputStream asdcCatalogFile = VidController.class.getClassLoader().getResourceAsStream("catalog.json");
- final JSONTokener tokener = new JSONTokener(asdcCatalogFile);
- final JSONObject catalog = new JSONObject(tokener);
-
- return new InMemoryAsdcClient.Builder().catalog(catalog).build();
- case REST:
-
- final String protocol = asdcClientConfig.getAsdcClientProtocol();
- final String host = asdcClientConfig.getAsdcClientHost();
- final int port = asdcClientConfig.getAsdcClientPort();
- final String auth = asdcClientConfig.getAsdcClientAuth();
- Client cl = null;
- if (protocol.equalsIgnoreCase("https")) {
- try {
- SSLContext ctx = SSLContext.getInstance("TLSv1.2");
- ctx.init(null, null, null);
- cl = ClientBuilder.newBuilder().sslContext(ctx).build();
- } catch (NoSuchAlgorithmException n) {
- throw new RuntimeException("SDC Client could not be instantiated due to unsupported protocol TLSv1.2", n);
- } catch (KeyManagementException k) {
- throw new RuntimeException("SDC Client could not be instantiated due to a key management exception", k);
- }
- } else {
- cl = ClientBuilder.newBuilder().build();
- }
-
- try {
- final URI uri = new URI(protocol + "://" + host + ":" + port + "/");
- return new RestfulAsdcClient.Builder(cl, uri)
- .auth(auth)
- .build();
- } catch (URISyntaxException e) {
- throw new RuntimeException("SDC Client could not be instantiated due to a syntax error in the URI", e);
- }
-
- case LOCAL:
-
- final InputStream asdcServicesFile = VidController.class.getClassLoader().getResourceAsStream("sdcservices.json");
-
- final JSONTokener jsonTokener = new JSONTokener(IOUtils.toString(asdcServicesFile));
- final JSONObject sdcServicesCatalog = new JSONObject(jsonTokener);
-
- return new LocalAsdcClient.Builder().catalog(sdcServicesCatalog).build();
-
- default:
- throw new RuntimeException(asdcClientConfig.getAsdcClientType() + " is invalid; must be one of " + Arrays.toString(AsdcClientType.values()));
+ public HttpsAuthClient httpsAuthClientFactory(ServletContext servletContext) {
+ final String certFilePath = new File(servletContext.getRealPath("/WEB-INF/cert/")).getAbsolutePath();
+ return new HttpsAuthClient(certFilePath);
+ }
+
+ @Bean
+ public AsdcClient asdcClient(AsdcClientConfiguration asdcClientConfig) {
+
+ final String protocol = asdcClientConfig.getAsdcClientProtocol();
+ final String host = asdcClientConfig.getAsdcClientHost();
+ final int port = asdcClientConfig.getAsdcClientPort();
+ final String auth = asdcClientConfig.getAsdcClientAuth();
+ Client cl = null;
+ if (protocol.equalsIgnoreCase("https")) {
+ try {
+ SSLContext ctx = SSLContext.getInstance("TLSv1.2");
+ ctx.init(null, null, null);
+ cl = ClientBuilder.newBuilder().sslContext(ctx).build();
+ } catch (NoSuchAlgorithmException n) {
+ throw new GenericUncheckedException("SDC Client could not be instantiated due to unsupported protocol TLSv1.2", n);
+ } catch (KeyManagementException k) {
+ throw new GenericUncheckedException("SDC Client could not be instantiated due to a key management exception", k);
+ }
+ } else {
+ cl = ClientBuilder.newBuilder().build();
+ }
+
+ try {
+ final URI uri = new URI(protocol + "://" + host + ":" + port + "/");
+ return new RestfulAsdcClient.Builder(cl, uri)
+ .auth(auth)
+ .build();
+ } catch (URISyntaxException e) {
+ throw new GenericUncheckedException("SDC Client could not be instantiated due to a syntax error in the URI", e);
}
}
@@ -121,4 +118,13 @@ public class WebConfig {
return new ToscaParserImpl2();
}
+ @Bean
+ public PombaService getVerifyServiceInstanceService() {
+ return new PombaServiceImpl();
+ }
+
+ @Bean
+ public PombaClientInterface getVerifyServiceInstanceClientInterface() {
+ return new PombaClientImpl();
+ }
}