aboutsummaryrefslogtreecommitdiffstats
path: root/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main')
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/Constants.java39
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/EtsiSoNsLcmManagerUrlProvider.java53
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/GsonSerializerConfiguration.java42
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLcmOperationOccurrenceManager.java122
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLifeCycleManager.java90
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLcmOperationOccurrencesController.java85
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLifecycleManagementController.java156
-rw-r--r--so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/exceptions/NsLcmControllerExceptionHandler.java58
8 files changed, 0 insertions, 645 deletions
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/Constants.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/Constants.java
deleted file mode 100644
index d330df3bae..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/Constants.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm;
-
-/**
- * @author Waqas Ikram (waqas.ikram@est.tech)
- *
- */
-public class Constants {
-
- public static final String SERVICE_NAME = "so-etsi-nfvo-ns-lcm";
- public static final String SERVICE_VERSION = "v1";
- public static final String BASE_URL = "/so/" + SERVICE_NAME + "/" + SERVICE_VERSION + "/api";
- public static final String NS_LIFE_CYCLE_MANAGEMENT_BASE_URL = BASE_URL + "/nslcm/v1";
-
- public static final String HTTP_GLOBAL_CUSTOMER_ID_HTTP_HEADER_PARM_NAME = "HTTP_GLOBALCUSTOMERID";
- public static final String HTTP_SERVICETYPE_HEADER_PARM_NAME = "HTTP_SERVICETYPE";
- public static final String HTTP_SERVICETYPE_HEADER_DEFAULT_VALUE = "NetworkService";
-
- private Constants() {}
-
-}
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/EtsiSoNsLcmManagerUrlProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/EtsiSoNsLcmManagerUrlProvider.java
deleted file mode 100644
index 80ec60468f..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/EtsiSoNsLcmManagerUrlProvider.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm;
-
-import java.net.URI;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-
-
-/**
- * @author Waqas Ikram (waqas.ikram@est.tech)
- *
- */
-@Configuration
-public class EtsiSoNsLcmManagerUrlProvider {
-
- private final String etsiNsLcmManagerEndpoint;
-
- @Autowired
- public EtsiSoNsLcmManagerUrlProvider(
- @Value("${so-etsi-nfvo-ns-lcm.endpoint:http://so-etsi-nfvo-ns-lcm.onap:9095}") final String etsiNsLcmManagerEndpoint) {
- this.etsiNsLcmManagerEndpoint = etsiNsLcmManagerEndpoint;
- }
-
- public URI getCreatedNsResourceUri(final String nsInstanceId) {
- return URI.create(etsiNsLcmManagerEndpoint + Constants.NS_LIFE_CYCLE_MANAGEMENT_BASE_URL + "/ns_instances/"
- + nsInstanceId);
- }
-
- public URI getNsLcmOpOccUri(final String nsLcmOpOccId) {
- return URI.create(etsiNsLcmManagerEndpoint + Constants.NS_LIFE_CYCLE_MANAGEMENT_BASE_URL + "/ns_lcm_op_occs/"
- + nsLcmOpOccId);
- }
-
-}
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/GsonSerializerConfiguration.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/GsonSerializerConfiguration.java
deleted file mode 100644
index 2e11adae01..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/GsonSerializerConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm;
-
-import java.time.LocalDateTime;
-import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.utils.LocalDateTimeTypeAdapter;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import com.google.gson.GsonBuilder;
-
-/**
- * @author Waqas Ikram (waqas.ikram@est.tech)
- *
- */
-@Configuration
-public class GsonSerializerConfiguration {
-
- @Bean
- public GsonBuilder gsonBuilder() {
- return new GsonBuilder().registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter());
- }
-
-}
-
-
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLcmOperationOccurrenceManager.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLcmOperationOccurrenceManager.java
deleted file mode 100644
index 8a5cee6d75..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLcmOperationOccurrenceManager.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm.lifecycle;
-
-import static org.slf4j.LoggerFactory.getLogger;
-import org.onap.so.etsi.nfvo.ns.lcm.EtsiSoNsLcmManagerUrlProvider;
-import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NsLcmOpOcc;
-import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider;
-import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstanceLinksSelf;
-import org.onap.so.etsi.nfvo.ns.lcm.model.NsLcmOpOccsNsLcmOpOcc;
-import org.onap.so.etsi.nfvo.ns.lcm.model.NsLcmOpOccsNsLcmOpOccLinks;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import java.util.Optional;
-
-/**
- * @author Waqas Ikram (waqas.ikram@est.tech)
- * @author Andrew Lamb (andrew.a.lamb@est.tech)
- *
- */
-@Service
-public class NsLcmOperationOccurrenceManager {
-
- private static final Logger logger = getLogger(NsLcmOperationOccurrenceManager.class);
-
- private final DatabaseServiceProvider databaseServiceProvider;
- private final EtsiSoNsLcmManagerUrlProvider etsiSoNsLcmManagerUrlProvider;
-
- @Autowired
- public NsLcmOperationOccurrenceManager(final DatabaseServiceProvider databaseServiceProvider,
- final EtsiSoNsLcmManagerUrlProvider etsiSoNsLcmManagerUrlProvider) {
- this.databaseServiceProvider = databaseServiceProvider;
- this.etsiSoNsLcmManagerUrlProvider = etsiSoNsLcmManagerUrlProvider;
- }
-
- public Optional<NsLcmOpOccsNsLcmOpOcc> getNsLcmOperationOccurrence(final String nsLcmOpOccId) {
- logger.info("Getting NS LCM Operation Occurrence Operation for id: {}", nsLcmOpOccId);
- final Optional<NsLcmOpOcc> optionalNsLcmOpOcc = databaseServiceProvider.getNsLcmOpOcc(nsLcmOpOccId);
-
- if (optionalNsLcmOpOcc.isEmpty()) {
- logger.info("No NS LCM Operation Occurrence found for id: {}", nsLcmOpOccId);
- return Optional.empty();
- }
-
- logger.info("Found NS LCM Operation Occurrence for id: {}", nsLcmOpOccId);
- final NsLcmOpOcc nsLcmOpOcc = optionalNsLcmOpOcc.get();
- final NsLcmOpOccsNsLcmOpOcc nsLcmOpOccsNsLcmOpOcc = convertToNsLcmOpOccsNsLcmOpOcc(nsLcmOpOcc);
- return Optional.of(nsLcmOpOccsNsLcmOpOcc);
- }
-
- private NsLcmOpOccsNsLcmOpOcc convertToNsLcmOpOccsNsLcmOpOcc(final NsLcmOpOcc nsLcmOpOcc) {
- logger.info("Converting Database NsLcmOpOcc to API NsLcmOpOcc... ");
- final NsLcmOpOccsNsLcmOpOcc nsLcmOpOccsNsLcmOpOcc =
- new NsLcmOpOccsNsLcmOpOcc().id(nsLcmOpOcc.getId()).statusEnteredTime(nsLcmOpOcc.getStateEnteredTime())
- .startTime(nsLcmOpOcc.getStartTime()).isAutomaticInvocation(nsLcmOpOcc.getIsAutoInvocation())
- .isCancelPending(nsLcmOpOcc.getIsCancelPending());
-
- if (nsLcmOpOcc.getNfvoNsInst() != null) {
- nsLcmOpOccsNsLcmOpOcc.setNsInstanceId(nsLcmOpOcc.getNfvoNsInst().getNsInstId());
- }
-
- if (nsLcmOpOcc.getOperationState() != null) {
- nsLcmOpOccsNsLcmOpOcc.setOperationState(
- NsLcmOpOccsNsLcmOpOcc.OperationStateEnum.fromValue(nsLcmOpOcc.getOperationState().toString()));
- }
-
- if (nsLcmOpOcc.getOperation() != null) {
- nsLcmOpOccsNsLcmOpOcc.setLcmOperationType(
- NsLcmOpOccsNsLcmOpOcc.LcmOperationTypeEnum.fromValue(nsLcmOpOcc.getOperation().toString()));
- }
-
- if (nsLcmOpOcc.getOperationParams() != null) {
- nsLcmOpOccsNsLcmOpOcc.setOperationParams(nsLcmOpOcc.getOperationParams());
- }
-
- if (nsLcmOpOcc.getCancelMode() != null) {
- nsLcmOpOccsNsLcmOpOcc.setCancelMode(
- NsLcmOpOccsNsLcmOpOcc.CancelModeEnum.fromValue(nsLcmOpOcc.getCancelMode().toString()));
- }
-
- nsLcmOpOccsNsLcmOpOcc.setLinks(generateLinks(nsLcmOpOcc));
-
- logger.info("Database NsLcmOpOcc converted to API NsLcmOpOcc successfully... {}", nsLcmOpOccsNsLcmOpOcc);
- return nsLcmOpOccsNsLcmOpOcc;
- }
-
- private NsLcmOpOccsNsLcmOpOccLinks generateLinks(final NsLcmOpOcc nsLcmOpOcc) {
- logger.info("Generating links...");
- final String nsLcmOpOccId = nsLcmOpOcc.getId();
- final NsInstancesNsInstanceLinksSelf linksSelfNsLcmOpOcc = new NsInstancesNsInstanceLinksSelf()
- .href(etsiSoNsLcmManagerUrlProvider.getNsLcmOpOccUri(nsLcmOpOccId).toString());
- final NsLcmOpOccsNsLcmOpOccLinks links = new NsLcmOpOccsNsLcmOpOccLinks().self(linksSelfNsLcmOpOcc);
-
- if (nsLcmOpOcc.getNfvoNsInst() != null) {
- final String nsInstId = nsLcmOpOcc.getNfvoNsInst().getNsInstId();
- final NsInstancesNsInstanceLinksSelf linksSelfNsInst = new NsInstancesNsInstanceLinksSelf()
- .href(etsiSoNsLcmManagerUrlProvider.getCreatedNsResourceUri(nsInstId).toString());
- links.setNsInstance(linksSelfNsInst);
- }
-
- return links;
- }
-
-}
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLifeCycleManager.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLifeCycleManager.java
deleted file mode 100644
index ae9f55e1c5..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/lifecycle/NsLifeCycleManager.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm.lifecycle;
-
-import static org.slf4j.LoggerFactory.getLogger;
-import java.net.URI;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.onap.so.etsi.nfvo.ns.lcm.EtsiSoNsLcmManagerUrlProvider;
-import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service.JobExecutorService;
-import org.onap.so.etsi.nfvo.ns.lcm.model.CreateNsRequest;
-import org.onap.so.etsi.nfvo.ns.lcm.model.InstantiateNsRequest;
-import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance;
-import org.onap.so.etsi.nfvo.ns.lcm.model.TerminateNsRequest;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-/**
- * @author Waqas Ikram (waqas.ikram@est.tech)
- *
- */
-@Service
-public class NsLifeCycleManager {
- private static final Logger logger = getLogger(NsLifeCycleManager.class);
-
- private final JobExecutorService jobExecutorService;
-
- @Value("${etsi-so-ns-workflow-engine.requesttimeout.create.timeoutInSeconds:300}")
- private int timeOutInSeconds;
-
- private final EtsiSoNsLcmManagerUrlProvider etsiSoNsLcmManagerUrlProvider;
-
- @Autowired
- public NsLifeCycleManager(final JobExecutorService jobExecutorService,
- final EtsiSoNsLcmManagerUrlProvider etsiSoNsLcmManagerUrlProvider) {
- this.jobExecutorService = jobExecutorService;
- this.etsiSoNsLcmManagerUrlProvider = etsiSoNsLcmManagerUrlProvider;
- }
-
- public ImmutablePair<URI, NsInstancesNsInstance> createNs(final CreateNsRequest createNsRequest,
- final String globalCustomerId, final String serviceType) {
- logger.info("Will execute Create Ns for CreateNsRequest: {}, globalCustomerId: {} and serviceType: {}",
- createNsRequest, globalCustomerId, serviceType);
- final NsInstancesNsInstance nsInstanceResponse =
- jobExecutorService.runCreateNsJob(createNsRequest, globalCustomerId, serviceType);
-
- return ImmutablePair.of(etsiSoNsLcmManagerUrlProvider.getCreatedNsResourceUri(nsInstanceResponse.getId()),
- nsInstanceResponse);
- }
-
- public URI instantiateNs(final String nsInstanceId, final InstantiateNsRequest instantiateNsRequest) {
- logger.info("Will execute Instantiate Ns for InstantiateNsRequest: {} and nsInstanceId: {}",
- instantiateNsRequest, nsInstanceId);
- final String nsLcmOpOccId = jobExecutorService.runInstantiateNsJob(nsInstanceId, instantiateNsRequest);
-
- return etsiSoNsLcmManagerUrlProvider.getNsLcmOpOccUri(nsLcmOpOccId);
-
- }
-
- public URI terminateNs(final String nsInstanceId, final TerminateNsRequest terminateNsRequest) {
- logger.info("Will execute Terminate Ns for TerminateNsRequest: {} and nsInstanceId: {}", terminateNsRequest,
- nsInstanceId);
- final String nsLcmOpOccId = jobExecutorService.runTerminateNsJob(nsInstanceId, terminateNsRequest);
-
- return etsiSoNsLcmManagerUrlProvider.getNsLcmOpOccUri(nsLcmOpOccId);
- }
-
- public void deleteNs(final String nsInstanceId) {
- logger.info("Will execute Delete Ns for nsInstanceId: {}", nsInstanceId);
- jobExecutorService.runDeleteNsJob(nsInstanceId);
- }
-}
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLcmOperationOccurrencesController.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLcmOperationOccurrencesController.java
deleted file mode 100644
index 207f0ff387..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLcmOperationOccurrencesController.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm.rest;
-
-import static org.onap.so.etsi.nfvo.ns.lcm.Constants.NS_LIFE_CYCLE_MANAGEMENT_BASE_URL;
-import static org.slf4j.LoggerFactory.getLogger;
-import javax.ws.rs.core.MediaType;
-import org.onap.so.etsi.nfvo.ns.lcm.lifecycle.NsLcmOperationOccurrenceManager;
-import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400;
-import org.onap.so.etsi.nfvo.ns.lcm.model.NsLcmOpOccsNsLcmOpOcc;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import java.util.Optional;
-
-/**
- * Controller for handling NS lifecycle management operation occurrence requests see clause 6.4.9 and 6.4.10 in
- * https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf
- *
- * @author Waqas Ikram (waqas.ikram@est.tech)
- * @author Andrew Lamb (andrew.a.lamb@est.tech)
- *
- */
-@Controller
-@RequestMapping(value = NS_LIFE_CYCLE_MANAGEMENT_BASE_URL)
-public class NsLcmOperationOccurrencesController {
- private static final Logger logger = getLogger(NsLcmOperationOccurrencesController.class);
-
- private final NsLcmOperationOccurrenceManager nsLcmOperationOccurrenceManager;
-
- @Autowired
- public NsLcmOperationOccurrencesController(final NsLcmOperationOccurrenceManager nsLcmOperationOccurrenceManager) {
- this.nsLcmOperationOccurrenceManager = nsLcmOperationOccurrenceManager;
- }
-
- /**
- * The GET method to retrieve status information about a NS lifecycle management operation occurrence by reading an
- * individual "NS LCM operation occurrence" resource.
- *
- * @param nsLcmOpOccId Identifier of a NS lifecycle management operation occurrence
- * @return "200 OK" with {@link NsLcmOpOccsNsLcmOpOcc NsLcmOpOcc} Information about a NS LCM operation occurrence
- * was queried successfully. The response body shall contain status information about a NS lifecycle
- * management operation occurrence (see clause 6.5.2.3).
- */
- @GetMapping(value = "/ns_lcm_op_occs/{nsLcmOpOccId}",
- produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public ResponseEntity<?> getOperationStatus(@PathVariable("nsLcmOpOccId") final String nsLcmOpOccId) {
- logger.info("Received request to retrieve operation status for nsLcmOpOccId: {}", nsLcmOpOccId);
- final Optional<NsLcmOpOccsNsLcmOpOcc> optionalNsLcmOpOccs =
- nsLcmOperationOccurrenceManager.getNsLcmOperationOccurrence(nsLcmOpOccId);
-
- if (optionalNsLcmOpOccs.isPresent()) {
- final NsLcmOpOccsNsLcmOpOcc nsLcmOpOcc = optionalNsLcmOpOccs.get();
- logger.info("Sending back NsLcmOpOcc: {}", nsLcmOpOcc);
- return ResponseEntity.ok().body(nsLcmOpOcc);
- }
-
- final String errorMessage = "Unable to retrieve operation occurrence status for nsLcmOpOccId: " + nsLcmOpOccId;
- logger.error(errorMessage);
- return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new InlineResponse400().detail(errorMessage));
- }
-
-}
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLifecycleManagementController.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLifecycleManagementController.java
deleted file mode 100644
index 4d6f92c373..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/NsLifecycleManagementController.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm.rest;
-
-import static org.onap.so.etsi.nfvo.ns.lcm.Constants.HTTP_GLOBAL_CUSTOMER_ID_HTTP_HEADER_PARM_NAME;
-import static org.onap.so.etsi.nfvo.ns.lcm.Constants.HTTP_SERVICETYPE_HEADER_DEFAULT_VALUE;
-import static org.onap.so.etsi.nfvo.ns.lcm.Constants.HTTP_SERVICETYPE_HEADER_PARM_NAME;
-import static org.onap.so.etsi.nfvo.ns.lcm.Constants.NS_LIFE_CYCLE_MANAGEMENT_BASE_URL;
-import static org.slf4j.LoggerFactory.getLogger;
-import java.net.URI;
-import javax.ws.rs.core.MediaType;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.onap.so.etsi.nfvo.ns.lcm.lifecycle.NsLifeCycleManager;
-import org.onap.so.etsi.nfvo.ns.lcm.model.Body;
-import org.onap.so.etsi.nfvo.ns.lcm.model.CreateNsRequest;
-import org.onap.so.etsi.nfvo.ns.lcm.model.InstantiateNsRequest;
-import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance;
-import org.onap.so.etsi.nfvo.ns.lcm.model.TerminateNsRequest;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-/**
- * Controller for handling the NS Lifecycle Management. For further information please read:
- * https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf Use the section number
- * above each endpoint to find the corresponding section in the above document.
- *
- * @author Waqas Ikram (waqas.ikram@est.tech)
- *
- */
-@Controller
-@RequestMapping(value = NS_LIFE_CYCLE_MANAGEMENT_BASE_URL)
-public class NsLifecycleManagementController {
- private static final Logger logger = getLogger(NsLifecycleManagementController.class);
-
- private final NsLifeCycleManager nsLifeCycleManager;
-
- @Autowired
- public NsLifecycleManagementController(final NsLifeCycleManager nsLifeCycleManager) {
- this.nsLifeCycleManager = nsLifeCycleManager;
- }
-
- /**
- * The POST method creates new {@link Body new NS instance resource} request. See Section Number: 6.3.1 for more
- * detail
- *
- * @param globalCustomerId The global customer ID
- * @param serviceType The service type
- * @param createNsRequest create network service request (see clause 6.5.2.9)
- * @return "201 Created" response containing a representation of the NS instance resource
- * {@link NsInstancesNsInstance} just created by the NFVO, and provides the URI of the newly-created
- * resource in the "Location:" HTTP header
- */
- @PostMapping(value = "/ns_instances", produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
- consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public ResponseEntity<NsInstancesNsInstance> createNs(
- @RequestHeader(value = HTTP_GLOBAL_CUSTOMER_ID_HTTP_HEADER_PARM_NAME,
- required = true) final String globalCustomerId,
- @RequestHeader(value = HTTP_SERVICETYPE_HEADER_PARM_NAME, required = false,
- defaultValue = HTTP_SERVICETYPE_HEADER_DEFAULT_VALUE) final String serviceType,
- @RequestBody final CreateNsRequest createNsRequest) {
- logger.info("Received Create NS Request: {}\n with globalCustomerId: {}\n serviceType: {}\n", createNsRequest,
- globalCustomerId, serviceType);
-
- final ImmutablePair<URI, NsInstancesNsInstance> nsInstance =
- nsLifeCycleManager.createNs(createNsRequest, globalCustomerId, serviceType);
-
- final URI resourceUri = nsInstance.getLeft();
- final NsInstancesNsInstance createdNsresponse = nsInstance.getRight();
-
- logger.info("NS resource created successfully. Resource location: {}, response: {}", resourceUri,
- createdNsresponse);
-
- return ResponseEntity.created(resourceUri).body(createdNsresponse);
- }
-
- /**
- * The DELETE method delete NS instance
- *
- * @param nsInstanceId Identifier of the NS instance to be deleted.
- * @return "202 Accepted" response with an empty entity body
- */
- @DeleteMapping(value = "/ns_instances/{nsInstanceId}",
- produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public ResponseEntity<Void> deleteNs(@PathVariable("nsInstanceId") final String nsInstanceId) {
- logger.debug("Received delete NS request for nsInstanceId: {}", nsInstanceId);
- nsLifeCycleManager.deleteNs(nsInstanceId);
- logger.info("Successfully deleted NS for nsInstanceId: {}", nsInstanceId);
- return ResponseEntity.noContent().build();
- }
-
- /**
- * The POST method instantiate NS instance
- *
- * @param nsInstanceId Identifier of the NS instance to be instantiated.
- * @param instantiateNsRequest Instantiate network service request (see clause 6.5.2.11)
- * @return "202 Accepted" response with an empty entity body and a "Location" HTTP header that points to the new "NS
- * Lifecycle Operation Occurrence" resource
- */
- @PostMapping(value = "/ns_instances/{nsInstanceId}/instantiate",
- produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
- consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public ResponseEntity<Void> instantiateNs(@PathVariable("nsInstanceId") final String nsInstanceId,
- @RequestBody final InstantiateNsRequest instantiateNsRequest) {
- logger.debug("Received instantiate NS request: {}\n with nsInstanceId: {}", instantiateNsRequest, nsInstanceId);
- final URI resourceUri = nsLifeCycleManager.instantiateNs(nsInstanceId, instantiateNsRequest);
- logger.info("{} Ns Instantiation started successfully. Resource Operation Occurrence uri: {}", nsInstanceId,
- resourceUri);
- return ResponseEntity.accepted().location(resourceUri).build();
- }
-
- /**
- * The POST method terminate NS instance
- *
- * @param nsInstanceId Identifier of the NS instance to be terminated.
- * @param terminateNsRequest The terminate NS request parameters (see clause 6.5.2.15)
- * @return "202 Accepted" response with an empty entity body and a "Location" HTTP header that points to the new "NS
- * Lifecycle Operation Occurrence" resource
- */
- @PostMapping(value = "/ns_instances/{nsInstanceId}/terminate",
- produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
- consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public ResponseEntity<Void> terminateNs(@PathVariable("nsInstanceId") final String nsInstanceId,
- @RequestBody(required = false) final TerminateNsRequest terminateNsRequest) {
- logger.debug("Received terminate NS request: {}\n with nsInstanceId: {}", terminateNsRequest, nsInstanceId);
- final URI resourceUri = nsLifeCycleManager.terminateNs(nsInstanceId, terminateNsRequest);
- logger.info("{} Ns Terminate started successfully. Resource Operation Occurrence uri: {}", nsInstanceId,
- resourceUri);
- return ResponseEntity.accepted().location(resourceUri).build();
- }
-
-}
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/exceptions/NsLcmControllerExceptionHandler.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/exceptions/NsLcmControllerExceptionHandler.java
deleted file mode 100644
index 3db04fcfe8..0000000000
--- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-service/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/rest/exceptions/NsLcmControllerExceptionHandler.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.etsi.nfvo.ns.lcm.rest.exceptions;
-
-import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.NsRequestProcessingException;
-import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400;
-import org.onap.so.etsi.nfvo.ns.lcm.rest.NsLifecycleManagementController;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-
-/**
- * @author Waqas Ikram (waqas.ikram@est.tech)
- *
- */
-@ControllerAdvice(assignableTypes = NsLifecycleManagementController.class)
-public class NsLcmControllerExceptionHandler {
-
- @ExceptionHandler(NsRequestProcessingException.class)
- public ResponseEntity<InlineResponse400> handleNsRequestProcessingException(
- final NsRequestProcessingException nsRequestProcessingException) {
- return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
- .body(getInlineResponse400(nsRequestProcessingException));
- }
-
- @ExceptionHandler(Exception.class)
- public ResponseEntity<InlineResponse400> handleNsRequestProcessingException(final Exception exception) {
- return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new InlineResponse400()
- .status(HttpStatus.INTERNAL_SERVER_ERROR.value()).detail(exception.getMessage()));
- }
-
- private InlineResponse400 getInlineResponse400(final NsRequestProcessingException nsRequestProcessingException) {
- if (nsRequestProcessingException.getProblemDetails() != null) {
- return nsRequestProcessingException.getProblemDetails();
- }
- return new InlineResponse400().status(HttpStatus.INTERNAL_SERVER_ERROR.value())
- .detail(nsRequestProcessingException.getMessage());
- }
-
-}