summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java33
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapter.java71
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapterImpl.java246
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java249
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExists.java45
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantException.java75
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBean.java63
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/MsoTenantAdapterImplTest.java71
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/TenantAdapterRestTest.java240
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExistsTest.java29
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBeanTest.java44
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionTest.java46
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy268
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy15
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy5
-rw-r--r--bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn279
-rw-r--r--packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image2
17 files changed, 275 insertions, 1506 deletions
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java
index a7bca73fdd..abfacebf05 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java
@@ -34,8 +34,6 @@ import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.onap.so.adapters.cloudregion.CloudRegionRestV1;
import org.onap.so.adapters.network.MsoNetworkAdapterImpl;
-import org.onap.so.adapters.tenant.MsoTenantAdapterImpl;
-import org.onap.so.adapters.tenant.TenantAdapterRest;
import org.onap.so.adapters.vnf.MsoVnfAdapterAsyncImpl;
import org.onap.so.adapters.vnf.MsoVnfAdapterImpl;
import org.onap.so.client.policy.JettisonStyleMapperProvider;
@@ -53,12 +51,8 @@ import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
@Configuration
public class CXFConfiguration {
@Autowired
- private TenantAdapterRest tenantAdapterRest;
- @Autowired
private MsoNetworkAdapterImpl networkAdapterImpl;
@Autowired
- private MsoTenantAdapterImpl tenantAdapterImpl;
- @Autowired
private MsoVnfAdapterImpl vnfAdapterImpl;
@Autowired
private MsoVnfAdapterAsyncImpl vnfAdapterAsyncImpl;
@@ -99,20 +93,6 @@ public class CXFConfiguration {
}
/*
- * tenant adapter endpoint
- */
- @Bean
- public Endpoint tenantAdapterEndpoint() {
- EndpointImpl endpoint = new EndpointImpl(springBus(), tenantAdapterImpl);
- endpoint.publish("/TenantAdapter");
- endpoint.setWsdlLocation("TenantAdapter.wsdl");
- endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
- endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
- endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
- return endpoint;
- }
-
- /*
* vnfAdapterEndpoint VnfAsyncAdapterEndpoint VnfCloudAdapterEndpoint
*/
@Bean
@@ -137,19 +117,6 @@ public class CXFConfiguration {
return endpoint;
}
- // Uses Jettson Style marshalling semantics
- @Bean
- public Server rsServer() {
- JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
- endpoint.setBus(springBus());
- endpoint.setServiceBeans(Arrays.<Object>asList(tenantAdapterRest));
- endpoint.setAddress("/rest");
- endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
- endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(jettisonStyleObjectMapper.getMapper()),
- soAuditLogContainerFilter));
- return endpoint.create();
- }
-
// Uses normal Jackson marshalling semantics
@Bean
public Server rsServerApi() {
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapter.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapter.java
deleted file mode 100644
index 68f7558add..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2018 IBM.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant;
-
-
-import java.util.Map;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebParam.Mode;
-import javax.jws.WebService;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.ws.Holder;
-import org.onap.so.adapters.tenant.exceptions.TenantException;
-import org.onap.so.adapters.tenantrest.TenantRollback;
-import org.onap.so.entity.MsoRequest;
-
-@WebService(name = "TenantAdapter", targetNamespace = "http://org.onap.so/tenant")
-public interface MsoTenantAdapter {
- /**
- * This is the "Create Tenant" Web Service Endpoint definition.
- */
- @WebMethod
- public void createTenant(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
- @WebParam(name = "tenantName") @XmlElement(required = true) String tenantName,
- @WebParam(name = "metadata") Map<String, String> metadata,
- @WebParam(name = "failIfExists") Boolean failIfExists, @WebParam(name = "backout") Boolean backout,
- @WebParam(name = "request") MsoRequest msoRequest,
- @WebParam(name = "tenantId", mode = Mode.OUT) Holder<String> tenantId,
- @WebParam(name = "rollback", mode = Mode.OUT) Holder<TenantRollback> rollback) throws TenantException;
-
- @WebMethod
- public void queryTenant(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
- @WebParam(name = "tenantNameOrId") @XmlElement(required = true) String tenantNameOrId,
- @WebParam(name = "request") MsoRequest msoRequest,
- @WebParam(name = "tenantId", mode = Mode.OUT) Holder<String> tenantId,
- @WebParam(name = "tenantName", mode = Mode.OUT) Holder<String> tenantName,
- @WebParam(name = "metadata", mode = Mode.OUT) Holder<Map<String, String>> metadata) throws TenantException;
-
- @WebMethod
- public void deleteTenant(@WebParam(name = "cloudSiteId") @XmlElement(required = true) String cloudSiteId,
- @WebParam(name = "tenantId") @XmlElement(required = true) String tenantId,
- @WebParam(name = "request") MsoRequest msoRequest,
- @WebParam(name = "tenantDeleted", mode = Mode.OUT) Holder<Boolean> tenantDeleted) throws TenantException;
-
- @WebMethod
- public void rollbackTenant(@WebParam(name = "rollback") @XmlElement(required = true) TenantRollback rollback)
- throws TenantException;
-
- @WebMethod
- public void healthCheck();
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapterImpl.java
deleted file mode 100644
index 4b02595074..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/MsoTenantAdapterImpl.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2018 IBM.
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant;
-
-
-import java.util.Map;
-import javax.annotation.Resource;
-import javax.jws.WebService;
-import javax.xml.ws.Holder;
-import javax.xml.ws.WebServiceContext;
-import org.onap.so.adapters.tenant.exceptions.TenantAlreadyExists;
-import org.onap.so.adapters.tenant.exceptions.TenantException;
-import org.onap.so.adapters.tenantrest.TenantRollback;
-import org.onap.so.entity.MsoRequest;
-import org.onap.logging.filter.base.ErrorCode;
-import org.onap.so.logger.MessageEnum;
-import org.onap.so.openstack.beans.MsoTenant;
-import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound;
-import org.onap.so.openstack.exceptions.MsoException;
-import org.onap.so.openstack.utils.MsoTenantUtils;
-import org.onap.so.openstack.utils.MsoTenantUtilsFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@WebService(serviceName = "TenantAdapter", endpointInterface = "org.onap.so.adapters.tenant.MsoTenantAdapter",
- targetNamespace = "http://org.onap.so/tenant")
-@Component
-public class MsoTenantAdapterImpl implements MsoTenantAdapter {
- public static final String CREATE_TENANT = "createTenant";
- public static final String OPENSTACK = "OpenStack";
- public static final String QUERY_TENANT = "QueryTenant";
- public static final String DELETE_TENANT = "DeleteTenant";
- public static final String ROLLBACK_TENANT = "RollbackTenant";
- private static final String OPENSTACK_COMMUNICATE_EXCEPTION_MSG =
- "{} {} Exception while communicate with Open Stack ";
- @Resource
- private WebServiceContext wsContext;
-
- @Autowired
- private MsoTenantUtilsFactory tFactory;
- private static Logger logger = LoggerFactory.getLogger(MsoTenantAdapterImpl.class);
-
- /**
- * Health Check web method. Does nothing but return to show the adapter is deployed.
- */
- @Override
- public void healthCheck() {
- logger.debug("Health check call in Tenant Adapter");
- }
-
- /**
- * This is the "Create Tenant" web service implementation. It will create a new Tenant in the specified cloud. If
- * the tenant already exists, this can be considered a success or failure, depending on the value of the
- * 'failIfExists' parameter.
- *
- * The method returns the tenantId (the Openstack ID), and a TenantRollback object. This last object can be passed
- * as-is to the rollbackTenant method to undo what (if anything) was created. This is useful if a Tenant is
- * successfully created but the orchestrator fails on a subsequent operation.
- */
- @Override
- public void createTenant(String cloudSiteId, String tenantName, Map<String, String> metadata, Boolean failIfExists,
- Boolean backout, MsoRequest msoRequest, Holder<String> tenantId, Holder<TenantRollback> rollback)
- throws TenantException {
-
- logger.debug("Call to MSO createTenant adapter. Creating Tenant: {} in {}", tenantName, cloudSiteId);
-
- // Start building up rollback object
- TenantRollback tenantRollback = new TenantRollback();
- tenantRollback.setCloudId(cloudSiteId);
- tenantRollback.setMsoRequest(msoRequest);
-
- MsoTenantUtils tUtils;
- try {
- tUtils = tFactory.getTenantUtils(cloudSiteId);
- } catch (MsoCloudSiteNotFound me) {
- logger.error("{} {} no implementation found for {}: ", MessageEnum.RA_CREATE_TENANT_ERR,
- ErrorCode.DataError.getValue(), cloudSiteId, me);
- throw new TenantException(me);
- }
-
- MsoTenant newTenant = null;
- String newTenantId;
- try {
- newTenant = tUtils.queryTenantByName(tenantName, cloudSiteId);
- } catch (MsoException me) {
- logger.error(OPENSTACK_COMMUNICATE_EXCEPTION_MSG, MessageEnum.RA_CREATE_TENANT_ERR,
- ErrorCode.DataError.getValue(), me);
- throw new TenantException(me);
- }
- if (newTenant == null) {
- if (backout == null)
- backout = true;
- try {
- newTenantId = tUtils.createTenant(tenantName, cloudSiteId, metadata, backout.booleanValue());
- } catch (MsoException me) {
- logger.error(OPENSTACK_COMMUNICATE_EXCEPTION_MSG, MessageEnum.RA_CREATE_TENANT_ERR,
- ErrorCode.DataError.getValue(), me);
- throw new TenantException(me);
- }
- tenantRollback.setTenantId(newTenantId);
- tenantRollback.setTenantCreated(true);
- logger.debug("Tenant {} successfully created with ID {}", tenantName, newTenantId);
- } else {
- if (failIfExists != null && failIfExists) {
- logger.error("{} {} CreateTenant: Tenant {} already exists in {} ", MessageEnum.RA_TENANT_ALREADY_EXIST,
- ErrorCode.DataError.getValue(), tenantName, cloudSiteId);
- throw new TenantAlreadyExists(tenantName, cloudSiteId, newTenant.getTenantId());
- }
-
- newTenantId = newTenant.getTenantId();
- tenantRollback.setTenantCreated(false);
- logger.debug("Tenant {} already exists with ID {}", tenantName, newTenantId);
- }
-
-
- tenantId.value = newTenantId;
- rollback.value = tenantRollback;
- return;
- }
-
- @Override
- public void queryTenant(String cloudSiteId, String tenantNameOrId, MsoRequest msoRequest, Holder<String> tenantId,
- Holder<String> tenantName, Holder<Map<String, String>> metadata) throws TenantException {
-
- logger.debug("Querying Tenant {} in {}", tenantNameOrId, cloudSiteId);
-
- MsoTenantUtils tUtils;
- try {
- tUtils = tFactory.getTenantUtils(cloudSiteId);
- } catch (MsoCloudSiteNotFound me) {
- logger.error("{} {} no implementation found for {}: ", MessageEnum.RA_CREATE_TENANT_ERR,
- ErrorCode.DataError.getValue(), cloudSiteId, me);
- throw new TenantException(me);
- }
-
- MsoTenant qTenant = null;
- try {
- qTenant = tUtils.queryTenant(tenantNameOrId, cloudSiteId);
- if (qTenant == null) {
- // Not found by ID, Try by name.
- qTenant = tUtils.queryTenantByName(tenantNameOrId, cloudSiteId);
- }
-
- if (qTenant == null) {
- logger.debug("QueryTenant: Tenant {} not found", tenantNameOrId);
- tenantId.value = null;
- tenantName.value = null;
- metadata.value = null;
- } else {
- logger.debug("QueryTenant: Tenant {} found with ID {}", tenantNameOrId, qTenant.getTenantId());
- tenantId.value = qTenant.getTenantId();
- tenantName.value = qTenant.getTenantName();
- metadata.value = qTenant.getMetadata();
- }
- } catch (MsoException me) {
- logger.error("Exception in queryTenant for {}: ", MessageEnum.RA_GENERAL_EXCEPTION,
- ErrorCode.DataError.getValue(), tenantNameOrId, me);
- throw new TenantException(me);
- }
- return;
- }
-
- @Override
- public void deleteTenant(String cloudSiteId, String tenantId, MsoRequest msoRequest, Holder<Boolean> tenantDeleted)
- throws TenantException {
-
- logger.debug("Deleting Tenant {} in {}", tenantId, cloudSiteId);
-
- // Delete the Tenant.
- try {
-
- MsoTenantUtils tUtils = tFactory.getTenantUtils(cloudSiteId);
- boolean deleted = tUtils.deleteTenant(tenantId, cloudSiteId);
- tenantDeleted.value = deleted;
- } catch (MsoException me) {
- logger.error("{} {} Exception - DeleteTenant {}: ", MessageEnum.RA_DELETE_TEMAMT_ERR,
- ErrorCode.DataError.getValue(), tenantId, me);
- throw new TenantException(me);
- }
-
- // On success, nothing is returned.
- return;
- }
-
- /**
- * This web service endpoint will rollback a previous Create VNF operation. A rollback object is returned to the
- * client in a successful creation response. The client can pass that object as-is back to the rollbackVnf operation
- * to undo the creation.
- *
- * The rollback includes removing the VNF and deleting the tenant if the tenant did not exist prior to the VNF
- * creation.
- */
- @Override
- public void rollbackTenant(TenantRollback rollback) throws TenantException {
- // rollback may be null (e.g. if stack already existed when Create was called)
- if (rollback == null) {
- logger.warn("{} {} rollbackTenant, rollback is null", MessageEnum.RA_ROLLBACK_NULL,
- ErrorCode.DataError.getValue());
- return;
- }
-
- // Get the elements of the VnfRollback object for easier access
- String cloudSiteId = rollback.getCloudId();
- String tenantId = rollback.getTenantId();
-
- logger.debug("Rolling Back Tenant {} in {}", rollback.getTenantId(), cloudSiteId);
-
- if (rollback.getTenantCreated()) {
- try {
-
- MsoTenantUtils tUtils = tFactory.getTenantUtils(cloudSiteId);
- tUtils.deleteTenant(tenantId, cloudSiteId);
- } catch (MsoException me) {
- me.addContext(ROLLBACK_TENANT);
- // Failed to delete the tenant.
- logger.error("{} {} Exception - rollbackTenant {}: ", MessageEnum.RA_ROLLBACK_TENANT_ERR,
- ErrorCode.DataError.getValue(), tenantId, me);
- throw new TenantException(me);
- }
- }
- return;
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java
deleted file mode 100644
index c782adec64..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2018 IBM.
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant;
-
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import java.util.Map;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.xml.ws.Holder;
-import org.onap.so.adapters.tenant.exceptions.TenantAlreadyExists;
-import org.onap.so.adapters.tenant.exceptions.TenantException;
-import org.onap.so.adapters.tenantrest.CreateTenantError;
-import org.onap.so.adapters.tenantrest.CreateTenantRequest;
-import org.onap.so.adapters.tenantrest.CreateTenantResponse;
-import org.onap.so.adapters.tenantrest.DeleteTenantError;
-import org.onap.so.adapters.tenantrest.DeleteTenantRequest;
-import org.onap.so.adapters.tenantrest.DeleteTenantResponse;
-import org.onap.so.adapters.tenantrest.QueryTenantError;
-import org.onap.so.adapters.tenantrest.QueryTenantResponse;
-import org.onap.so.adapters.tenantrest.RollbackTenantError;
-import org.onap.so.adapters.tenantrest.RollbackTenantRequest;
-import org.onap.so.adapters.tenantrest.RollbackTenantResponse;
-import org.onap.so.adapters.tenantrest.TenantRollback;
-import org.onap.so.openstack.beans.MsoTenant;
-import org.onap.so.openstack.exceptions.MsoExceptionCategory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * This class services calls to the REST interface for Tenants (http://host:port/vnfs/rest/v1/tenants) Both XML and JSON
- * can be produced/consumed. Set Accept: and Content-Type: headers appropriately. XML is the default.
- */
-@Path("/v1/tenants")
-@Api(value = "/v1/tenants", description = "root of tenant adapters restful web service")
-@Component
-public class TenantAdapterRest {
-
- private static Logger logger = LoggerFactory.getLogger(TenantAdapterRest.class);
- private static final String EXCEPTION = "Exception :";
- // RAA? No logging in wrappers
- @Autowired
- private MsoTenantAdapterImpl tenantImpl;
-
-
-
- /*
- * URL: EP: http://host:8080/tenants/rest Resource: v1/tenants REQ - metadata? { "cloudSiteId": "DAN", "tenantName":
- * "RAA_1", "failIfExists": true, "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" }} RESP- {
- * "cloudSiteId": "DAN", "tenantId": "128e10b9996d43a7874f19bbc4eb6749", "tenantCreated": true, "tenantRollback": {
- * "tenantId": "128e10b9996d43a7874f19bbc4eb6749", "cloudId": "DAN", // RAA? cloudId instead of cloudSiteId
- * "tenantCreated": true, "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" } } }
- */
- @POST
- @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
- @ApiOperation(value = "CreateTenant", response = Response.class,
- notes = "Creates a new tenant, CreateTenantRequest data is required")
- @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully created"),
- @ApiResponse(code = 500, message = "create tenant failed")})
- public Response createTenant(
- @ApiParam(value = "details of tenant being created", required = true) CreateTenantRequest req) {
- logger.debug("createTenant enter: {}", req.toJsonString());
-
- String newTenantId = null;
- TenantRollback tenantRollback;
-
- try {
- Holder<String> htenant = new Holder<>();
- Holder<TenantRollback> hrollback = new Holder<>();
- MsoTenantAdapter impl = tenantImpl;
- impl.createTenant(req.getCloudSiteId(), req.getTenantName(), req.getMetadata(), req.getFailIfExists(),
- req.getBackout(), req.getMsoRequest(), htenant, hrollback);
- newTenantId = htenant.value;
- tenantRollback = hrollback.value;
-
- } catch (TenantAlreadyExists tae) {
- logger.debug(EXCEPTION, tae);
- CreateTenantError exc =
- new CreateTenantError(tae.getMessage(), tae.getFaultInfo().getCategory(), Boolean.TRUE);
- return Response.status(HttpServletResponse.SC_NOT_IMPLEMENTED).entity(exc).build();
- } catch (TenantException te) {
- logger.debug(EXCEPTION, te);
- CreateTenantError exc = new CreateTenantError(te.getFaultInfo().getMessage(),
- te.getFaultInfo().getCategory(), Boolean.TRUE);
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- } catch (Exception e) {
- logger.debug(EXCEPTION, e);
- CreateTenantError exc = new CreateTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE);
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- }
-
- CreateTenantResponse resp = new CreateTenantResponse(req.getCloudSiteId(), newTenantId,
- tenantRollback.getTenantCreated(), tenantRollback);
- return Response.status(HttpServletResponse.SC_OK).entity(resp).build();
- }
-
- /*
- * URL: http://host:8080/tenants/rest Resource: v1/tenant/tennatId REQ: {"cloudSiteId": "DAN", "tenantId":
- * "ca84cd3d3df44272845da554656b3ace", "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" } } RESP:
- * {"tenantDeleted": true}
- */
- @DELETE
- @Path("{tenantId}")
- @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
- @ApiOperation(value = "DeleteTenant", response = Response.class, notes = "Delete an existing tenant")
- @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully deleted"),
- @ApiResponse(code = 500, message = "delete tenant failed")})
- public Response deleteTenant(
- @ApiParam(value = "tenantId of tenant being deleted",
- required = true) @PathParam("tenantId") String tenantId,
- @ApiParam(value = "DeleteTenantRequest object containing additional information of tenant being deleted",
- required = false) DeleteTenantRequest req) {
- boolean tenantDeleted = false;
-
- try {
- Holder<Boolean> deleted = new Holder<>();
- MsoTenantAdapter impl = tenantImpl;
- impl.deleteTenant(req.getCloudSiteId(), req.getTenantId(), req.getMsoRequest(), deleted);
- tenantDeleted = deleted.value;
- } catch (TenantException te) {
- logger.debug(EXCEPTION, te);
- DeleteTenantError exc = new DeleteTenantError(te.getFaultInfo().getMessage(),
- te.getFaultInfo().getCategory(), Boolean.TRUE);
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- } catch (Exception e) {
- logger.debug(EXCEPTION, e);
- DeleteTenantError exc = new DeleteTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE);
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- }
- DeleteTenantResponse resp = new DeleteTenantResponse();
- resp.setTenantDeleted(tenantDeleted);
- return Response.status(HttpServletResponse.SC_OK).entity(resp).build();
- }
-
- /*
- * URL EP://http://host:8080/tenants/rest Resource: /v1/tenants Params:?tenantNameOrId=RAA_1&cloudSiteId=DAN RESP {
- * "tenantId": "214b428a1f554c02935e66330f6a5409", "tenantName": "RAA_1", "metadata": {} }
- */
- @GET
- @Path("{tenantId}")
- @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
- @ApiOperation(value = "QueryTenant", response = Response.class, notes = "Query an existing tenant")
- @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully queried"),
- @ApiResponse(code = 500, message = "query tenant failed")})
- public Response queryTenant(@ApiParam(value = "tenantId", required = true) @PathParam("tenantId") String tenantId,
- // @QueryParam("tenantNameOrId") String tenantNameOrId, //RAA? diff from doc
- @ApiParam(value = "cloudSiteId", required = true) @QueryParam("cloudSiteId") String cloudSiteId,
- @ApiParam(value = "msoRequest.requestId",
- required = true) @QueryParam("msoRequest.requestId") String requestId,
- @ApiParam(value = "msoRequest.serviceInstanceId",
- required = true) @QueryParam("msoRequest.serviceInstanceId") String serviceInstanceId) {
- MsoTenant tenant = null;
- try {
- Holder<String> htenant = new Holder<>();
- Holder<String> tenantName = new Holder<>();
- Holder<Map<String, String>> metadata = new Holder<>();
- MsoTenantAdapter impl = tenantImpl;
- impl.queryTenant(cloudSiteId, tenantId, null, htenant, tenantName, metadata);
- tenant = new MsoTenant(htenant.value, tenantName.value, metadata.value);
-
- } catch (TenantException te) {
- logger.debug(EXCEPTION, te);
- QueryTenantError exc =
- new QueryTenantError(te.getFaultInfo().getMessage(), te.getFaultInfo().getCategory());
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- } catch (Exception e) {
- logger.debug(EXCEPTION, e);
- QueryTenantError exc = new QueryTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL);
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- }
- QueryTenantResponse resp =
- new QueryTenantResponse(tenant.getTenantId(), tenant.getTenantName(), tenant.getMetadata());
- return Response.status(HttpServletResponse.SC_OK).entity(resp).build();
- }
-
- /*
- * URL EP: //http://host:8080/tenants/rest Resource: /v1/tenants/rollback REQ {"cloudSiteId": "DAN", "tenantId":
- * "f58abb05041d4ff384d4d22d1ccd2a6c", "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" } } RESP:
- * {"tenantDeleted": true}
- */
- @DELETE
- @Path("")
- @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
- @ApiOperation(value = "RollbackTenant", response = Response.class, notes = "Rollback an existing tenant")
- @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully rolledback"),
- @ApiResponse(code = 500, message = "rollback tenant failed")})
- public Response rollbackTenant(
- @ApiParam(value = "rollback, command action", required = true) @QueryParam("rollback") String action,
- @ApiParam(value = "RollbackTenantRequest", required = true) RollbackTenantRequest req) {
- try {
- MsoTenantAdapter impl = tenantImpl;
- impl.rollbackTenant(req.getTenantRollback());
- } catch (TenantException te) {
- logger.debug(EXCEPTION, te);
- RollbackTenantError exc = new RollbackTenantError(te.getFaultInfo().getMessage(),
- te.getFaultInfo().getCategory(), Boolean.TRUE);
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- } catch (Exception e) {
- logger.debug(EXCEPTION, e);
- RollbackTenantError exc =
- new RollbackTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE);
- return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build();
- }
-
- RollbackTenantResponse resp = new RollbackTenantResponse();
- resp.setTenantRolledback(req != null);
- return Response.status(HttpServletResponse.SC_OK).entity(resp).build();
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExists.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExists.java
deleted file mode 100644
index 8955eb50c6..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExists.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant.exceptions;
-
-
-
-import javax.xml.ws.WebFault;
-import org.onap.so.openstack.exceptions.MsoExceptionCategory;
-
-
-/**
- * This class reports an exception when trying to create a VNF when another VNF of the same name already exists in the
- * target cloud/tenant. Note that the createVnf method suppresses this exception by default.
- *
- *
- */
-@WebFault(name = "TenantAlreadyExists", faultBean = "org.onap.so.adapters.tenant.exceptions.TenantExceptionBean",
- targetNamespace = "http://org.onap.so/tenant")
-public class TenantAlreadyExists extends TenantException {
-
- private static final long serialVersionUID = 1L;
-
- public TenantAlreadyExists(String name, String cloudId, String tenantId) {
- super("Tenant " + name + " already exists in " + cloudId + " with ID " + tenantId,
- MsoExceptionCategory.USERDATA);
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantException.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantException.java
deleted file mode 100644
index 998da98c8d..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantException.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant.exceptions;
-
-
-
-import javax.xml.ws.WebFault;
-import org.onap.so.openstack.exceptions.MsoException;
-import org.onap.so.openstack.exceptions.MsoExceptionCategory;
-
-/**
- * This class simply extends Exception (without addition additional functionality) to provide an identifier for Tenant
- * related exceptions on create, delete, query.
- *
- *
- */
-@WebFault(name = "TenantException", faultBean = "org.onap.so.adapters.tenant.exceptions.TenantExceptionBean",
- targetNamespace = "http://org.onap.so/tenant")
-public class TenantException extends Exception {
-
- private static final long serialVersionUID = 1L;
-
- private TenantExceptionBean faultInfo;
-
- public TenantException(String msg) {
- super(msg);
- faultInfo = new TenantExceptionBean(msg);
- }
-
- public TenantException(String msg, Throwable e) {
- super(msg, e);
- faultInfo = new TenantExceptionBean(msg);
- }
-
- public TenantException(String msg, MsoExceptionCategory category) {
- super(msg);
- faultInfo = new TenantExceptionBean(msg, category);
- }
-
- public TenantException(String msg, MsoExceptionCategory category, Throwable e) {
- super(msg, e);
- faultInfo = new TenantExceptionBean(msg, category);
- }
-
- public TenantException(MsoException e) {
- super(e);
- faultInfo = new TenantExceptionBean(e.getContextMessage(), e.getCategory());
- }
-
- public TenantExceptionBean getFaultInfo() {
- return faultInfo;
- }
-
- public void setFaultInfo(TenantExceptionBean faultInfo) {
- this.faultInfo = faultInfo;
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBean.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBean.java
deleted file mode 100644
index 2d9260615a..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBean.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant.exceptions;
-
-
-import java.io.Serializable;
-import org.onap.so.openstack.exceptions.MsoExceptionCategory;
-
-/**
- * Jax-WS Fault Bean for Network Exceptions
- */
-public class TenantExceptionBean implements Serializable {
-
- private static final long serialVersionUID = -9062290006520066109L;
-
- private String message;
- private MsoExceptionCategory category;
-
- public TenantExceptionBean() {}
-
- public TenantExceptionBean(String message) {
- this.message = message;
- }
-
- public TenantExceptionBean(String message, MsoExceptionCategory category) {
- this.message = message;
- this.category = category;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public MsoExceptionCategory getCategory() {
- return category;
- }
-
- public void setCategory(MsoExceptionCategory category) {
- this.category = category;
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/MsoTenantAdapterImplTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/MsoTenantAdapterImplTest.java
deleted file mode 100644
index b695a538bb..0000000000
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/MsoTenantAdapterImplTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-package org.onap.so.adapters.tenant;
-
-import java.util.HashMap;
-import javax.xml.ws.Holder;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.so.adapters.tenantrest.TenantRollback;
-import org.onap.so.cloud.CloudConfig;
-import org.onap.so.entity.MsoRequest;
-
-@RunWith(MockitoJUnitRunner.class)
-public class MsoTenantAdapterImplTest {
-
- @Mock
- private CloudConfig cloudConfig;
-
- @Spy
- @InjectMocks
- private MsoTenantAdapterImpl msoTenantAdapter;
-
- @Test
- public void healthCheck() throws Exception {
- msoTenantAdapter.healthCheck();
- }
-
- @Test(expected = NullPointerException.class)
- public void createTenant() throws Exception {
- msoTenantAdapter.createTenant("site", "tenant", new HashMap<>(), true, true, new MsoRequest(),
- new Holder<String>(), new Holder<TenantRollback>());
- }
-
- @Test(expected = NullPointerException.class)
- public void queryTenant() throws Exception {
- msoTenantAdapter.queryTenant("site", "tenant", new MsoRequest(), new Holder<>(), new Holder<>(),
- new Holder<>());
- }
-
- @Test(expected = NullPointerException.class)
- public void deleteTenant() throws Exception {
- msoTenantAdapter.deleteTenant("cloud", "tenant", new MsoRequest(), new Holder<Boolean>());
- }
-
- @Test
- public void rollbackTenant() throws Exception {
- msoTenantAdapter.rollbackTenant(new TenantRollback());
- }
-
-}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/TenantAdapterRestTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/TenantAdapterRestTest.java
deleted file mode 100644
index 1a44934187..0000000000
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/TenantAdapterRestTest.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant;
-
-import static com.shazam.shazamcrest.MatcherAssert.assertThat;
-import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
-import static org.junit.Assert.assertEquals;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackDeleteTenantById_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetMetadata_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetRoles_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantById_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantById_404;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantByName_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantByName_404;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetUser_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostMetadata_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostTenantWithBodyFile_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostTenant_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutRolesAdmin_200;
-import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccessAdmin;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.onap.so.adapters.tenantrest.CreateTenantRequest;
-import org.onap.so.adapters.tenantrest.CreateTenantResponse;
-import org.onap.so.adapters.tenantrest.DeleteTenantRequest;
-import org.onap.so.adapters.tenantrest.DeleteTenantResponse;
-import org.onap.so.adapters.vnf.BaseRestTestUtils;
-import org.onap.so.client.policy.JettisonStyleMapperProvider;
-import org.onap.so.entity.MsoRequest;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
-
-public class TenantAdapterRestTest extends BaseRestTestUtils {
-
- @Autowired
- private JettisonStyleMapperProvider jettisonTypeObjectMapper;
-
- @Test
- public void testCreateTenantCreated() throws JsonParseException, JsonMappingException, IOException {
-
- CreateTenantRequest request = new CreateTenantRequest();
- String cloudSiteId = "mtn13";
- String requestId = "62265093-277d-4388-9ba6-449838ade586";
- String serviceInstanceId = "4147e06f-1b89-49c5-b21f-4faf8dc9805a";
- String tenantName = "testingTenantName";
- boolean failIfExists = true;
- boolean backout = true;
- Map<String, String> metaData = new HashMap<>();
- metaData.put("key1", "value2");
- MsoRequest msoReq = new MsoRequest();
- msoReq.setRequestId(requestId);
- msoReq.setServiceInstanceId(serviceInstanceId);
-
- request.setCloudSiteId(cloudSiteId);
- request.setMsoRequest(msoReq);
- request.setTenantName(tenantName);
- request.setMetadata(metaData);
- request.setBackout(backout);
- request.setFailIfExists(failIfExists);
-
- mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
-
- mockOpenStackGetTenantByName_404(wireMockServer, tenantName);
-
- mockOpenStackPostTenantWithBodyFile_200(wireMockServer);
-
- mockOpenStackGetUser_200(wireMockServer, "m93945");
-
- mockOpenStackGetRoles_200(wireMockServer, "OS-KSADM");
-
- mockOpenStackPutRolesAdmin_200(wireMockServer, "OS-KSADM");
-
- mockOpenStackPostMetadata_200(wireMockServer);
-
- headers.add("Accept", MediaType.APPLICATION_JSON);
- HttpEntity<CreateTenantRequest> entity = new HttpEntity<CreateTenantRequest>(request, headers);
-
- ResponseEntity<CreateTenantResponse> response = restTemplate.exchange(
- createURLWithPort("/services/rest/v1/tenants"), HttpMethod.POST, entity, CreateTenantResponse.class);
-
- CreateTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
- new File("src/test/resources/__files/CreateTenantResponse_Created.json"), CreateTenantResponse.class);
-
- assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
- assertThat(response.getBody(), sameBeanAs(expectedResponse));
- }
-
- @Test
- public void testCreateTenantExists() throws JsonParseException, JsonMappingException, IOException {
-
- CreateTenantRequest request = new CreateTenantRequest();
- String cloudSiteId = "mtn13";
- String requestId = "62265093-277d-4388-9ba6-449838ade586";
- String serviceInstanceId = "4147e06f-1b89-49c5-b21f-4faf8dc9805a";
- String tenantName = "testingTenantName";
- boolean failIfExists = false;
- boolean backout = true;
- Map<String, String> metadata = new HashMap<>();
-
- MsoRequest msoReq = new MsoRequest();
- msoReq.setRequestId(requestId);
- msoReq.setServiceInstanceId(serviceInstanceId);
-
- request.setCloudSiteId(cloudSiteId);
- request.setMsoRequest(msoReq);
- request.setTenantName(tenantName);
- request.setMetadata(metadata);
- request.setBackout(backout);
- request.setFailIfExists(failIfExists);
-
- mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
-
- mockOpenStackGetTenantByName_200(wireMockServer, tenantName);
-
- mockOpenStackPostTenant_200(wireMockServer);
-
- mockOpenStackGetMetadata_200(wireMockServer);
-
- headers.add("Accept", MediaType.APPLICATION_JSON);
- HttpEntity<CreateTenantRequest> entity = new HttpEntity<CreateTenantRequest>(request, headers);
-
- ResponseEntity<CreateTenantResponse> response = restTemplate.exchange(
- createURLWithPort("/services/rest/v1/tenants"), HttpMethod.POST, entity, CreateTenantResponse.class);
-
- CreateTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
- new File("src/test/resources/__files/CreateTenantResponse_Exists.json"), CreateTenantResponse.class);
-
- assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
- assertThat(response.getBody(), sameBeanAs(expectedResponse));
- }
-
- @Test
- public void testDeleteTenant() throws IOException {
-
- DeleteTenantRequest request = new DeleteTenantRequest();
- String cloudSiteId = "mtn13";
- String tenantId = "tenantId";
- String requestId = "ra1";
- String serviceInstanceId = "sa1";
-
- MsoRequest msoReq = new MsoRequest();
- msoReq.setRequestId(requestId);
- msoReq.setServiceInstanceId(serviceInstanceId);
-
- request.setCloudSiteId(cloudSiteId);
- request.setTenantId(tenantId);
- request.setMsoRequest(msoReq);
-
- mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
-
- mockOpenStackGetTenantById_200(wireMockServer, tenantId);
-
- mockOpenStackDeleteTenantById_200(wireMockServer, tenantId);
-
- headers.add("Accept", MediaType.APPLICATION_JSON);
- HttpEntity<DeleteTenantRequest> entity = new HttpEntity<DeleteTenantRequest>(request, headers);
-
- ResponseEntity<DeleteTenantResponse> response =
- restTemplate.exchange(createURLWithPort("/services/rest/v1/tenants/tenantId"), HttpMethod.DELETE,
- entity, DeleteTenantResponse.class);
-
- DeleteTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
- new File("src/test/resources/__files/DeleteTenantResponse_Success.json"), DeleteTenantResponse.class);
-
- assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
- assertThat(response.getBody(), sameBeanAs(expectedResponse));
- }
-
- // @Ignore
- @Test
- public void testDeleteTenantFails() throws IOException {
-
- DeleteTenantRequest request = new DeleteTenantRequest();
- String cloudSiteId = "mtn13";
- String tenantId = "tenantId";
- String requestId = "ra1";
- String serviceInstanceId = "sa1";
-
- MsoRequest msoReq = new MsoRequest();
- msoReq.setRequestId(requestId);
- msoReq.setServiceInstanceId(serviceInstanceId);
-
- request.setCloudSiteId(cloudSiteId);
- request.setTenantId(tenantId);
- request.setMsoRequest(msoReq);
-
- mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
-
- mockOpenStackGetTenantById_404(wireMockServer, tenantId);
-
- headers.add("Accept", MediaType.APPLICATION_JSON);
- HttpEntity<DeleteTenantRequest> entity = new HttpEntity<DeleteTenantRequest>(request, headers);
-
- ResponseEntity<DeleteTenantResponse> response =
- restTemplate.exchange(createURLWithPort("/services/rest/v1/tenants/tenantId"), HttpMethod.DELETE,
- entity, DeleteTenantResponse.class);
-
- DeleteTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
- new File("src/test/resources/__files/DeleteTenantResponse_Failed.json"), DeleteTenantResponse.class);
-
- assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
- assertThat(response.getBody(), sameBeanAs(expectedResponse));
- }
-
- @Ignore
- @Test
- public void testQuaryTenant() {
-
-
-
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExistsTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExistsTest.java
deleted file mode 100644
index 106a96a091..0000000000
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantAlreadyExistsTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * ============LICENSE_START======================================================= ONAP : SO
- * ================================================================================ Copyright (C) 2018 TechMahindra
- * ================================================================================ Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant.exceptions;
-
-import org.junit.Test;
-import static org.junit.Assert.*;
-
-public class TenantAlreadyExistsTest {
-
- @Test
- public void test() {
- TenantAlreadyExists tar = new TenantAlreadyExists("name", "cloudId", "tenantId");
- assert (tar != null);
- assertNotNull(tar);
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBeanTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBeanTest.java
deleted file mode 100644
index ece92b4ac0..0000000000
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionBeanTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * ============LICENSE_START======================================================= ONAP : SO
- * ================================================================================ Copyright (C) 2018 TechMahindra
- * ================================================================================ Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant.exceptions;
-
-import org.junit.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.onap.so.openstack.exceptions.MsoExceptionCategory;
-import static org.junit.Assert.*;
-
-public class TenantExceptionBeanTest {
-
- @Mock
- private MsoExceptionCategory mec;
-
- @InjectMocks
- private TenantExceptionBean teb;
-
- @Test
- public void test() {
- teb = new TenantExceptionBean("message", mec);
- teb.setMessage("message");
- teb.setCategory(MsoExceptionCategory.INTERNAL);
- teb.setCategory(MsoExceptionCategory.IO);
- teb.setCategory(MsoExceptionCategory.OPENSTACK);
- teb.setCategory(MsoExceptionCategory.USERDATA);
- assert (teb.getMessage().equals("message"));
- assert (teb.getCategory() != null);
- assertNotNull(teb);
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionTest.java
deleted file mode 100644
index 1ce4c664ac..0000000000
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tenant/exceptions/TenantExceptionTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * ============LICENSE_START======================================================= ONAP : SO
- * ================================================================================ Copyright (C) 2018 TechMahindra
- * ================================================================================ Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.tenant.exceptions;
-
-import org.junit.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.onap.so.openstack.exceptions.MsoExceptionCategory;
-import static org.junit.Assert.*;
-
-public class TenantExceptionTest {
-
- @Mock
- private TenantExceptionBean teb;
-
- @Mock
- private MsoExceptionCategory mec;
-
- @InjectMocks
- private TenantException te;
-
- @Test
- public void test() {
- teb = new TenantExceptionBean("message");
- teb.setMessage("message");
- teb.setCategory(MsoExceptionCategory.INTERNAL);
- te = new TenantException("message", mec);
- te.setFaultInfo(teb);
- assert (te.getFaultInfo() != null);
- assert (te.getFaultInfo().equals(teb));
- assertNotNull(teb);
- }
-}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy
index 5e50b9d52d..2d18108acd 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy
@@ -78,30 +78,19 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
String operationType = execution.getVariable("operationType")
String oStatus= ""
-
if(operationType.equals("activateInstance")) {
oStatus ="activated"
} else {
oStatus ="deactivated"
}
-
execution.setVariable("oStatus", oStatus)
String sNssaiListAsString = jsonUtil.getJsonValue(execution.getVariable("sliceParams"), "snssaiList")
-
- logger.debug("sNssaiListAsString "+sNssaiListAsString)
-
List<String> sNssaiList = jsonUtil.StringArrayToList(sNssaiListAsString)
-
- logger.debug("sNssaiList "+sNssaiList)
-
-
String sNssai = sNssaiList.get(0)
execution.setVariable("sNssai", sNssai)
-
- logger.debug("sNssai: "+sNssai)
-
String serviceType = execution.getVariable("subscriptionServiceType")
execution.setVariable("serviceType", serviceType)
+ logger.debug("operationType: {} , sNssai: {}, serviceType: {}.",operationType, sNssai, serviceType)
logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: preProcessRequest ****")
}
@@ -117,31 +106,30 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
if(nsi.isPresent()) {
List<Relationship> relationshipList = nsi.get().getRelationshipList()?.getRelationship()
List spiWithsNssaiAndOrchStatusList = new ArrayList<>()
-
for (Relationship relationship : relationshipList) {
String relatedTo = relationship.getRelatedTo()
- if (relatedTo == "service-instance") {
+ if (("service-instance").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
List<RelatedToProperty> relatedToPropertyList = relationship.getRelatedToProperty()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "service-instance.service-instance-id") {
+ if (("service-instance.service-instance-id").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("networkServiceInstanceId", relationshipData.getRelationshipValue())
}
}
for (RelatedToProperty relatedToProperty : relatedToPropertyList) {
- if (relatedToProperty.getPropertyKey() == "service-instance.service-instance-name") {
+ if (("service-instance.service-instance-name").equals(relatedToProperty.getPropertyKey())) {
execution.setVariable("networkServiceInstanceName", relatedToProperty.getPropertyValue())
}
}
}
//If related to is allotted-Resource
- if (relatedTo == "allotted-resource") {
+ if (("allotted-resource").equals(relatedTo)) {
//get slice Profile Instance Id from allotted resource in list by nssi
List<String> sliceProfileInstanceIdList = new ArrayList<>()
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "service-instance.service-instance-id") {
+ if (relationshipData.getRelationshipKey().equals("service-instance.service-instance-id")) {
sliceProfileInstanceIdList.add(relationshipData.getRelationshipValue())
}
}
@@ -153,13 +141,13 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
Optional<ServiceInstance> sliceProfileServiceInstance = sliceProfileInstanceWrapper.asBean(ServiceInstance.class)
if (sliceProfileServiceInstance.isPresent()) {
String orchestrationStatus= sliceProfileServiceInstance.get().getOrchestrationStatus()
- String sNssai = sliceProfileServiceInstance.get().getSliceProfiles().getSliceProfile().get(0).getSNssai()
- if(sNssai.equals(execution.getVariable("sNssai"))) {
+ String sNssai = sliceProfileServiceInstance.get().getEnvironmentContext()
+ String sNssaiValueFromRequest = execution.getVariable("sNssai")
+ if(sNssai.equals(sNssaiValueFromRequest)) {
orchestrationStatus = execution.getVariable("oStatus")
//Slice Profile Service Instance to be updated in AAI
- execution.setVariable("sliceProfileServiceInstance", sliceProfileServiceInstance)
+ execution.setVariable("sliceProfileServiceInstance", sliceProfileServiceInstance.get())
}
-
Map<String, Object> spiWithsNssaiAndOrchStatus = new LinkedHashMap<>()
spiWithsNssaiAndOrchStatus.put("snssai", sNssai)
spiWithsNssaiAndOrchStatus.put("status", orchestrationStatus)
@@ -185,18 +173,13 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
Map<String, Object> nSsai= new LinkedHashMap<>()
nSsai.put("sNssai", instanceParamsvalues)
String supportedsNssaiJson = mapper.writeValueAsString(nSsai)
- //SupportedNssai
- Map<String, Object> supportedNssai= new LinkedHashMap<>()
- supportedNssai.put("supportedNssai", supportedsNssaiJson)
- logger.debug("**** supportedsNssaiJson**** "+supportedNssai)
- logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: prepareVnfInstanceParamsJson ****")
- return supportedNssai
+ logger.debug(Prefix+" **** Exit DoActivateCoreNSSI ::: prepareVnfInstanceParamsJson ****")
+ return supportedsNssaiJson
}
private void getServiceInstanceRelationships(DelegateExecution execution) {
logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: getServiceInstanceRelationships ****")
String serviceInstanceId = execution.getVariable("networkServiceInstanceId")
- logger.debug("**** serviceInstanceId :: getServiceInstanceRelationships :: "+serviceInstanceId)
String errorMsg = "query Network Service Instance from AAI failed"
AAIResultWrapper wrapper = queryAAI(execution, Types.SERVICE_INSTANCE, serviceInstanceId, errorMsg)
Optional<ServiceInstance> si = wrapper.asBean(ServiceInstance.class)
@@ -207,29 +190,33 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
List<Relationship> relationshipList = si.get().getRelationshipList()?.getRelationship()
for (Relationship relationship : relationshipList) {
String relatedTo = relationship.getRelatedTo()
- if (relatedTo == "owning-entity") {
+ if (("owning-entity").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "owning-entity.owning-entity-id") {
+ if (("owning-entity.owning-entity-id").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("owningEntityId", relationshipData.getRelationshipValue())
}
}
- } else if (relatedTo == "generic-vnf") {
+ } else if (("generic-vnf").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
List<RelatedToProperty> relatedToPropertyList = relationship.getRelatedToProperty()
//Get VnfId
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "generic-vnf.vnf-id") {
+ if (("generic-vnf.vnf-id").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("vnfId", relationshipData.getRelationshipValue())
- String vnfId = relationshipData.getRelationshipValue()
- logger.debug("vnfId :"+vnfId)
}
}
- } else if (relatedTo == "project") {
+ //Get Vnf Name Check If necessary
+ for (RelatedToProperty relatedToProperty : relatedToPropertyList) {
+ if (("generic-vnf.vnf-name").equals(relatedToProperty.getPropertyKey())) {
+ execution.setVariable("vnfName", relatedToProperty.getPropertyValue())
+ }
+ }
+ } else if (("project").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "project.project-name") {
+ if (("project.project-name").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("projectName", relationshipData.getRelationshipValue())
}
}
@@ -254,34 +241,34 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
List<Relationship> relationshipList = vnf.get().getRelationshipList()?.getRelationship()
for (Relationship relationship : relationshipList) {
String relatedTo = relationship.getRelatedTo()
- if (relatedTo == "tenant") {
+ if (("tenant").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "tenant.tenant-id") {
+ if (("tenant.tenant-id").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("tenantId", relationshipData.getRelationshipValue())
}
}
- } else if (relatedTo == "cloud-region") {
+ } else if (("cloud-region").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "cloud-region.cloud-owner") {
+ if (("cloud-region.cloud-owner").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("cloudOwner", relationshipData.getRelationshipValue())
- } else if (relationshipData.getRelationshipKey() == "cloud-region.cloud-region-id") {
+ } else if (("cloud-region.cloud-region-id").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("lcpCloudRegionId", relationshipData.getRelationshipValue())
}
}
- } else if (relatedTo == "platform") {
+ } else if (("platform").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "platform.platform-name") {
+ if (("platform.platform-name").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("platformName", relationshipData.getRelationshipValue())
}
}
- } else if (relatedTo == "line-of-business") {
+ } else if (("line-of-business").equals(relatedTo)) {
List<RelationshipData> relationshipDataList = relationship.getRelationshipData()
for (RelationshipData relationshipData : relationshipDataList) {
- if (relationshipData.getRelationshipKey() == "line-of-business.line-of-business-name") {
+ if (("line-of-business.line-of-business-name").equals(relationshipData.getRelationshipKey())) {
execution.setVariable("lineOfBusinessName", relationshipData.getRelationshipValue())
}
}
@@ -334,11 +321,9 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
String serviceVnfs = jsonUtil.getJsonValue(json, "serviceResources.serviceVnfs") ?: ""
String serviceModelInfo = jsonUtil.getJsonValue(json, "serviceResources.modelInfo") ?: ""
-
-
execution.setVariable("serviceVnfs",serviceVnfs)
execution.setVariable("serviceModelInfo", serviceModelInfo)
- logger.debug(Prefix +" ***** serviceVnfs is: "+ serviceVnfs)
+ logger.debug(Prefix +" ***** serviceVnfs : "+ serviceVnfs)
}catch(BpmnError e){
throw e
} catch (Exception ex){
@@ -352,9 +337,7 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
public void prepareSOMacroRequestPayLoad(DelegateExecution execution) {
logger.debug("**** Enter DoActivateCoreNSSI ::: prepareSOMacroRequestPayLoad ****")
String json = execution.getVariable("serviceVnfs")
- logger.debug(">>>> json "+json)
List<Object> vnfList = mapper.readValue(json, List.class);
- logger.debug("vnfList: "+vnfList)
Map<String,Object> serviceMap = mapper.readValue(execution.getVariable("serviceModelInfo"), Map.class);
ModelInfo serviceModelInfo = new ModelInfo()
serviceModelInfo.setModelType(ModelType.service)
@@ -362,18 +345,12 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
serviceModelInfo.setModelVersionId(serviceMap.get("modelUuid"))
serviceModelInfo.setModelName(serviceMap.get("modelName"))
serviceModelInfo.setModelVersion(serviceMap.get("modelVersion"))
-
- logger.debug("serviceModelInfo: "+serviceModelInfo)
//List of Vnfs
List<Object> vnfModelInfoList = new ArrayList<>()
Map vnfMap = vnfList.get(0)
- ModelInfo vnfModelInfo = vnfMap.get("modelInfo")
- logger.debug("vnfModelInfo "+vnfModelInfo)
-
//List of VFModules
List<Map<String, Object>> vfModuleList = vnfMap.get("vfModules")
- logger.debug("vfModuleList "+vfModuleList)
//List of VfModules
List<ModelInfo> vfModelInfoList = new ArrayList<>()
@@ -381,17 +358,19 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
//Traverse VFModules List and add in vfModelInfoList
for (vfModule in vfModuleList) {
ModelInfo vfModelInfo = vfModule.get("modelInfo")
- logger.debug("vfModelInfo "+vfModelInfo)
+ vfModelInfo.setModelCustomizationId(vfModelInfo.getModelCustomizationUuid())
+ vfModelInfo.setModelVersionId(vfModelInfo.getModelId())
vfModelInfoList.add(vfModelInfo)
}
+ String networkServiceInstanceName = execution.getVariable("networkServiceInstanceName")
//RequestInfo
RequestInfo requestInfo = new RequestInfo()
//Dummy Product FamilyId
requestInfo.setProductFamilyId("test1234")
requestInfo.setSource("VID")
- requestInfo.setInstanceName(execution.getVariable("networkServiceInstanceName"))
+ requestInfo.setInstanceName(networkServiceInstanceName)
requestInfo.setSuppressRollback(false)
requestInfo.setRequestorId("NBI")
@@ -401,10 +380,13 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
serviceParams.add(serviceParamsValues)
//Cloud Configuration
+ String lcpCloudRegionId = execution.getVariable("lcpCloudRegionId")
+ String tenantId = execution.getVariable("tenantId")
+ String cloudOwner = execution.getVariable("cloudOwner")
CloudConfiguration cloudConfiguration = new CloudConfiguration()
- cloudConfiguration.setLcpCloudRegionId(execution.getVariable("lcpCloudRegionId"))
- cloudConfiguration.setTenantId(execution.getVariable("tenantId"))
- cloudConfiguration.setCloudOwner(execution.getVariable("cloudOwner"))
+ cloudConfiguration.setLcpCloudRegionId(lcpCloudRegionId)
+ cloudConfiguration.setTenantId(tenantId)
+ cloudConfiguration.setCloudOwner(cloudOwner)
//VFModules List
List<Map<String, Object>> vfModules = new ArrayList<>()
@@ -412,26 +394,33 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
//Individual VFModule List
Map<String, Object> vfModuleValues = new LinkedHashMap<>()
vfModuleValues.put("modelInfo", vfModuleModelInfo)
- vfModuleValues.put("instanceName", vfModuleModelInfo.getModelInstanceName())
+ vfModuleValues.put("instanceName", vfModuleModelInfo.getModelName())
//VFModule InstanceParams should be empty or this field should not be there?
List<Map<String, Object>> vfModuleInstanceParams = new ArrayList<>()
vfModuleValues.put("instanceParams", vfModuleInstanceParams)
+ vfModules.add(vfModuleValues)
}
//Vnf intsanceParams
- ObjectMapper objectMapper = new ObjectMapper();
- Map<String, Object> sliceProfile = objectMapper.readValue(execution.getVariable("sliceProfile"), Map.class);
-
- List vnfInstanceParamsList = new ArrayList<>()
+ List<Map<String, Object>> vnfInstanceParamsList = new ArrayList<>()
String supportedsNssaiJson= prepareVnfInstanceParamsJson(execution)
- vnfInstanceParamsList.add(supportedsNssaiJson)
+
+ Map<String, Object> supportedNssai= new LinkedHashMap<>()
+ supportedNssai.put("supportedsNssai", supportedsNssaiJson)
+ vnfInstanceParamsList.add(supportedNssai)
Platform platform = new Platform()
- platform.setPlatformName(execution.getVariable("platform"))
+ String platformName = execution.getVariable("platformName")
+ platform.setPlatformName(platformName)
LineOfBusiness lineOfbusiness = new LineOfBusiness()
- lineOfbusiness.setLineOfBusinessName(execution.getVariable("lineOfBusiness"))
+ String lineOfBusinessName = execution.getVariable("lineOfBusinessName")
+ lineOfbusiness.setLineOfBusinessName(lineOfBusinessName)
+
+ ModelInfo vnfModelInfo = vnfMap.get("modelInfo")
+ vnfModelInfo.setModelCustomizationId(vnfModelInfo.getModelCustomizationUuid())
+ vnfModelInfo.setModelVersionId(vnfModelInfo.getModelId())
//Vnf Values
Map<String, Object> vnfValues = new LinkedHashMap<>()
@@ -441,7 +430,7 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
vnfValues.put("cloudConfiguration", cloudConfiguration)
vnfValues.put("vfModules", vfModules)
vnfValues.put("modelInfo", vnfModelInfo)
- vnfValues.put("instanceName", execution.getVariable("vnfInstanceName"))
+ vnfValues.put("instanceName", vnfModelInfo.getModelInstanceName())
vnfValues.put("instanceParams",vnfInstanceParamsList)
vnfModelInfoList.add(vnfValues)
@@ -450,9 +439,10 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
serviceResources.put("vnfs", vnfModelInfoList)
//Service Values
+ String serviceInstanceName = execution.getVariable("networkServiceInstanceName")
Map<String, Object> serviceValues = new LinkedHashMap<>()
serviceValues.put("modelInfo", serviceModelInfo)
- serviceValues.put("instanceName", execution.getVariable("networkServiceInstanceName"))
+ serviceValues.put("instanceName", serviceInstanceName)
serviceValues.put("resources", serviceResources)
serviceValues.put("instanceParams", serviceParams)
@@ -470,22 +460,26 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
userParams.add(userParamsValues)
//Request Parameters
+ String serviceType = execution.getVariable("serviceType")
RequestParameters requestParameters = new RequestParameters()
requestParameters.setaLaCarte(false)
- requestParameters.setSubscriptionServiceType(execution.getVariable("serviceType"))
+ requestParameters.setSubscriptionServiceType(serviceType)
requestParameters.setUserParams(userParams)
//SubscriberInfo
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
SubscriberInfo subscriberInfo = new SubscriberInfo()
- subscriberInfo.setGlobalSubscriberId(execution.getVariable("globalSubscriberId"))
+ subscriberInfo.setGlobalSubscriberId(globalSubscriberId)
//Owning Entity
+ String owningEntityId = execution.getVariable("owningEntityId")
OwningEntity owningEntity = new OwningEntity()
- owningEntity.setOwningEntityId(execution.getVariable("owningEntityId"))
+ owningEntity.setOwningEntityId(owningEntityId)
//Project
+ String projectName = execution.getVariable("projectName")
Project project = new Project()
- project.setProjectName(execution.getVariable("projectName"))
+ project.setProjectName(projectName)
RequestDetails requestDetails = new RequestDetails()
requestDetails.setModelInfo(serviceModelInfo)
@@ -498,8 +492,7 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
Map<String, Object> requestDetailsMap = new LinkedHashMap<>()
requestDetailsMap.put("requestDetails", requestDetails)
- String requestPayload = objectMapper.writeValueAsString(requestDetailsMap)
-
+ String requestPayload = mapper.writeValueAsString(requestDetailsMap)
logger.debug("requestDetails "+requestPayload)
execution.setVariable("requestPayload", requestPayload)
@@ -511,23 +504,23 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: sendPutRequestToSOMacro ****")
try {
String msoEndpoint = UrnPropertiesReader.getVariable("mso.infra.endpoint.url", execution)
- String url = msoEndpoint+"/serviceInstantiation/v7/serviceInstances/"+execution.getVariable("networkServiceInstanceId")+"/vnfs/"+execution.getVariable("vnfId")
+ String networkServiceInstanceId = execution.getVariable("networkServiceInstanceId")
+ String vnfId = execution.getVariable("vnfId")
+ String url = msoEndpoint+"/serviceInstantiation/v7/serviceInstances/"+networkServiceInstanceId+"/vnfs/"+vnfId
String requestBody = execution.getVariable("requestPayload")
String msoKey = UrnPropertiesReader.getVariable("mso.msoKey", execution)
- String basicAuth = UrnPropertiesReader.getVariable("mso.infra.endpoint.auth", execution)
- String basicAuthValue = utils.encrypt(basicAuth, msoKey)
- String encodeString = utils.getBasicAuth(basicAuthValue, msoKey)
-
+ String basicAuth = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution)
+ String encodeString = utils.getBasicAuth(basicAuth, msoKey)
+ logger.debug("msoEndpoint: "+msoEndpoint +" "+ "url: "+url +" requestBody: "+requestBody +" "+ "encodeString: "+encodeString)
HttpClient httpClient = getHttpClientFactory().newJsonClient(new URL(url), ONAPComponents.SO)
httpClient.addAdditionalHeader("Authorization", encodeString)
httpClient.addAdditionalHeader("Accept", "application/json")
Response httpResponse = httpClient.put(requestBody)
handleSOResponse(httpResponse, execution)
-
} catch (BpmnError e) {
throw e
} catch (any) {
- String msg = "Exception in DoActivateCoreNSSSI " + any.getCause()
+ String msg = Prefix+" Exception in DoActivateCoreNSSI " + any.getCause()
logger.error(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
@@ -546,15 +539,15 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
if (soResponseCode >= 200 && soResponseCode < 204 && httpResponse.hasEntity()) {
String soResponse = httpResponse.readEntity(String.class)
- String operationId = execution.getVariable("operationId")
- def macroOperationId = jsonUtil.getJsonValue(soResponse, "operationId")
+ logger.debug("soResponse: "+soResponse)
+ String macroOperationId = jsonUtil.getJsonValue(soResponse, "requestReferences.requestId")
+ String requestSelfLink = jsonUtil.getJsonValue(soResponse, "requestReferences.requestSelfLink")
execution.setVariable("macroOperationId", macroOperationId)
+ execution.setVariable("requestSelfLink", requestSelfLink)
execution.setVariable("isSOTimeOut", "no")
execution.setVariable("isSOResponseSucceed","yes")
}
- else
- {
- String serviceName = execution.getVariable("serviceInstanceName")
+ else {
execution.setVariable("isSOResponseSucceed","no")
prepareFailedOperationStatusUpdate(execution)
}
@@ -562,37 +555,58 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: handleSOResponse ****")
}
- /**
- * prepare to call sub process CheckProcessStatus
- * @param execution
- */
- void prepareCallCheckProcessStatus(DelegateExecution execution){
- logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: prepareCallCheckProcessStatus ****")
- def successConditions = new ArrayList<>()
- successConditions.add("finished")
- execution.setVariable("successConditions", successConditions)
- def errorConditions = new ArrayList<>()
- errorConditions.add("error")
- execution.setVariable("errorConditions", errorConditions)
- execution.setVariable("processServiceType", "Network service")
- execution.setVariable("subOperationType", "PUT")
- execution.setVariable("initProgress", 20)
- execution.setVariable("endProgress",90)
- execution.setVariable("timeOut", TIMEOUT)
- logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: prepareCallCheckProcessStatus ****")
+ public void getSOPUTProgress(DelegateExecution execution) {
+ logger.debug(Prefix+ " **** Enter DoActivateCoreNSSI ::: getSOPUTProgress ****")
+ String url= execution.getVariable("requestSelfLink")
+ HttpClient httpClient = getHttpClientFactory().newJsonClient(new URL(url), ONAPComponents.SO)
+ String msoKey = UrnPropertiesReader.getVariable("mso.msoKey", execution)
+ String basicAuth = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution)
+ String encodeString = utils.getBasicAuth(basicAuth, msoKey)
+ httpClient.addAdditionalHeader("Authorization", encodeString)
+ httpClient.addAdditionalHeader("Accept", "application/json")
+ Response httpResponse = httpClient.get()
+ logger.debug("httpResponse "+httpResponse)
+ int soResponseCode = httpResponse.getStatus()
+ logger.debug("soResponseCode : "+soResponseCode)
+ if (soResponseCode >= 200 && soResponseCode < 204 && httpResponse.hasEntity()) {
+ String soResponse = httpResponse.readEntity(String.class)
+ logger.debug("soResponse: "+soResponse)
+ String requestState= jsonUtil.getJsonValue(soResponse, "request.requestStatus.requestState")
+ logger.debug("requestState: "+requestState)
+ execution.setVariable("requestState", requestState)
+ } else {
+ execution.setVariable("isSOResponseSucceed","no")
+ prepareFailedOperationStatusUpdate(execution)
+ }
+ logger.debug(Prefix+ " **** Exit DoActivateCoreNSSI ::: getSOPUTProgress ****")
}
+ public void timeDelay() {
+ try {
+ logger.debug(Prefix+ " **** DoActivateCoreNSSI ::: timeDelay going to sleep for 5 sec")
+ Thread.sleep(5000)
+ logger.debug("**** DoActivateCoreNSSI ::: timeDelay wakeup after 5 sec")
+ } catch(InterruptedException e) {
+ logger.error(Prefix+ " **** DoActivateCoreNSSI ::: timeDelay exception" + e)
+ }
+ }
+
void prepareUpdateResourceOperationStatus(DelegateExecution execution) {
logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: prepareUpdateResourceOperationStatus ****")
- String nssiOperationId = execution.getVariable("nssiOperationId")
- execution.setVariable("operationId", nssiOperationId)
+ String soRequestState = execution.getVariable("requestState")
//Prepare Update Status for PUT failure and success
- if(execution.getVariable("isTimeOut").equals("YES")) {
- logger.debug("TIMEOUT - SO PUT Failure")
+ if("COMPLETE".equalsIgnoreCase(soRequestState)) {
+ execution.setVariable("progress", "100")
+ execution.setVariable("status", "finished")
+ execution.setVariable("operationContent", "AllocteCoreNSSI successful.")
+ logger.debug("Success ,result:${execution.getVariable("result")}, reason: ${execution.getVariable("reason")}")
+ } else {
+ logger.debug("SO PUT Failure with State: "+soRequestState)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, "SO PUT Failure")
}
+ setResourceOperationStatus(execution)
logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: prepareUpdateResourceOperationStatus ****")
}
@@ -610,14 +624,8 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalCustId).serviceSubscription(serviceType).serviceInstance(sliceProfileInstanceId))
try {
-
- Response response = getAAIClient().update(uri, si)
-
- if(response.getStatus()!=200 || response.getStatus()!=201 || response.getStatus()!=202) {
- exceptionUtil.buildAndThrowWorkflowException(execution, response.getStatus(), "AAI failed to update sliceProlie service Instance orchestration status")
- } else {
- setResourceOperationStatus(execution)
- }
+ getAAIClient().update(uri, si)
+ setResourceOperationStatus(execution)
} catch (Exception e) {
logger.info("Update OrchestrationStatus in AAI failed")
String msg = "Update OrchestrationStatus in AAI failed, " + e.getMessage()
@@ -636,14 +644,17 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: setResourceOperationStatus ****")
- String serviceId = execution.getVariable("nssiId")
+ String serviceId = execution.getVariable("nsiId")
String jobId = execution.getVariable("jobId")
- String nsiId = execution.getVariable("nsiId")
+ String nssiId = execution.getVariable("serviceInstanceID")
+ String modelUuid= execution.getVariable("modelUuid")
String operationType = execution.getVariable("operationType")
ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus()
resourceOperationStatus.setServiceId(serviceId)
+ resourceOperationStatus.setJobId(jobId)
resourceOperationStatus.setOperationId(jobId)
- resourceOperationStatus.setResourceTemplateUUID(nsiId)
+ resourceOperationStatus.setResourceTemplateUUID(modelUuid)
+ resourceOperationStatus.setResourceInstanceID(nssiId)
resourceOperationStatus.setOperType(operationType)
resourceOperationStatus.setStatus("finished")
resourceOperationStatus.setProgress("100")
@@ -656,17 +667,20 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor {
void prepareFailedOperationStatusUpdate(DelegateExecution execution){
logger.debug(Prefix + " **** Enter DoActivateCoreNSSI ::: prepareFailedOperationStatusUpdate ****")
- String serviceId = execution.getVariable("nssiId")
+ String serviceId = execution.getVariable("nsiId")
String jobId = execution.getVariable("jobId")
- String nsiId = execution.getVariable("nsiId")
+ String nssiId = execution.getVariable("serviceInstanceID")
String operationType = execution.getVariable("operationType")
+ String modelUuid= execution.getVariable("modelUuid")
ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus()
resourceOperationStatus.setServiceId(serviceId)
+ resourceOperationStatus.setJobId(jobId)
resourceOperationStatus.setOperationId(jobId)
- resourceOperationStatus.setResourceTemplateUUID(nsiId)
+ resourceOperationStatus.setResourceInstanceID(nssiId)
+ resourceOperationStatus.setResourceTemplateUUID(modelUuid)
resourceOperationStatus.setOperType(operationType)
- resourceOperationStatus.setProgress(0)
+ resourceOperationStatus.setProgress("0")
resourceOperationStatus.setStatus("failed")
resourceOperationStatus.setStatusDescription("Core NSSI Activation Failed")
requestDBUtil.prepareUpdateResourceOperationStatus(execution, resourceOperationStatus)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy
index 91599700ef..a1afe9ae95 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy
@@ -368,7 +368,7 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor {
String nssiId = execution.getVariable("nssiServiceInstanceId")
String globalCustId = execution.getVariable("globalSubscriberId")
String serviceType = execution.getVariable("subscriptionServiceType")
- logger.debug("networkServiceInstanceId: "+networkServiceInstanceId +" nssiId: "+nssiId +" globalCustId: "+globalCustId+ " serviceType: "+serviceType)
+ logger.debug("networkServiceInstanceId: {}, nssiId: {}, globalCustId: {}, serviceType: {}", networkServiceInstanceId, nssiId, globalCustId, serviceType)
try{
//Update NSSI orchestration status nssiServiceInstance
ServiceInstance si = execution.getVariable("nssiServiceInstance")
@@ -424,7 +424,7 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor {
String LogicalLinkId = jsonUtil.getJsonValue(bh_endpoint, "LogicalLinkId")
String nextHopInfo = jsonUtil.getJsonValue(bh_endpoint, "nextHopInfo")
NetworkRoute bh_ep = new NetworkRoute()
- logger.debug("bh_endpoint: "+bh_endpoint +" "+ "bh_routeId: "+bh_routeId +" "+ "cnIpAddress: "+cnIpAddress +" "+ "role: "+role +" "+ "cnIpAddress: "+cnIpAddress +" "+ "LogicalLinkId: "+LogicalLinkId +" "+ "nextHopInfo: "+nextHopInfo +" "+ "bh_ep: "+bh_ep)
+ logger.debug("bh_endpoint: {}, bh_routeId: {}, cnIpAddress: {}, role: {}, LogicalLinkId: {}, nextHopInfo: {}, bh_ep: {}", bh_endpoint, bh_routeId, cnIpAddress, role, LogicalLinkId, nextHopInfo, bh_ep)
bh_ep.setRouteId(bh_routeId)
bh_ep.setFunction(function)
bh_ep.setRole(role)
@@ -448,7 +448,7 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor {
relationship.setRelatedLink(relatedLink)
relationship.setRelatedTo("network-route")
relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
- logger.debug("networkRouteUri: "+networkRouteUri+"relationship: "+relationship)
+ logger.debug("networkRouteUri: {}, relationship: {}",networkRouteUri,relationship)
try {
AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalSubscriberId).serviceSubscription(subscriptionServiceType).serviceInstance(coreNssi)).relationshipAPI()
logger.debug("uri: "+uri)
@@ -473,13 +473,14 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor {
logger.debug(Prefix+ " **** Enter DoAllocateCoreNonSharedSlice ::: setResourceOperationStatus ****")
String serviceId = execution.getVariable("nsiId")
String jobId = execution.getVariable("jobId")
- String nsiId = execution.getVariable("nsiId")
String nssiId = execution.getVariable("nssiServiceInstanceId")
String operationType = "ALLOCATE"
+ String modelUuid= execution.getVariable("modelUuid")
ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus()
resourceOperationStatus.setServiceId(serviceId)
+ resourceOperationStatus.setJobId(jobId)
resourceOperationStatus.setOperationId(jobId)
- resourceOperationStatus.setResourceTemplateUUID(nsiId)
+ resourceOperationStatus.setResourceTemplateUUID(modelUuid)
resourceOperationStatus.setResourceInstanceID(nssiId)
resourceOperationStatus.setOperType(operationType)
resourceOperationStatus.setStatus(execution.getVariable("status"))
@@ -493,17 +494,15 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor {
logger.debug(Prefix + " **** Enter DoAllocateCoreNonSharedSlice ::: prepareFailedOperationStatusUpdate ****")
String serviceId = execution.getVariable("nsiId")
String jobId = execution.getVariable("jobId")
- String nsiId = execution.getVariable("nsiId")
String nssiId = execution.getVariable("nssiServiceInstanceId")
String operationType = "ALLOCATE"
//modelUuid
String modelUuid= execution.getVariable("modelUuid")
- logger.debug("serviceId: "+serviceId +" "+ "jobId: "+jobId +" "+ "nsiId: "+nsiId +" "+ "nssiId: "+nssiId +" "+ "operationType: "+operationType)
+ logger.debug("serviceId: {}, jobId: {}, nssiId: {}, operationType: {}.", serviceId, jobId, nssiId, operationType)
ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus()
resourceOperationStatus.setServiceId(serviceId)
resourceOperationStatus.setJobId(jobId)
resourceOperationStatus.setOperationId(jobId)
- resourceOperationStatus.setResourceTemplateUUID(nsiId)
resourceOperationStatus.setResourceInstanceID(nssiId)
resourceOperationStatus.setResourceTemplateUUID(modelUuid)
resourceOperationStatus.setOperType(operationType)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy b/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy
index 69780939ef..e4c6fe5f60 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy
@@ -184,10 +184,9 @@ class DoActivateCoreNSSITest extends MsoGroovyTest {
when(mockExecution.getVariable("snssaiAndOrchStatusList")).thenReturn(snssaiList)
String returnedJsonAsString= doActivate.prepareVnfInstanceParamsJson(mockExecution)
-
- String expectedJsonAsString = """{supportedNssai={"sNssai":[{"snssai":"01-5C83F071","status":"activated"},{"snssai":"01-5B179BD4","status":"activated"}]}}"""
+ String expectedJsonAsString = """{"sNssai":[{"snssai":"01-5C83F071","status":"activated"},{"snssai":"01-5B179BD4","status":"activated"}]}"""
assertEquals(expectedJsonAsString, returnedJsonAsString)
- }
+ }
String mockQueryNS() {
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn
index b422545e84..9ce25ed174 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn
@@ -4,7 +4,7 @@
<bpmn:startEvent id="StartEvent_0lgslwq" name="Start">
<bpmn:outgoing>SequenceFlow_0wwo1lh</bpmn:outgoing>
</bpmn:startEvent>
- <bpmn:scriptTask id="ScriptTask_1x13jc1" name="Pre-process  request&#10;Check operationType" scriptFormat="groovy">
+ <bpmn:scriptTask id="ScriptTask_1x13jc1" name="Pre-process  request&#10;Check operationType" scriptFormat="groovy">
<bpmn:incoming>SequenceFlow_0wwo1lh</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_139ejmn</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
@@ -25,8 +25,8 @@ activateNssi.getServiceVNFAndVFsFromCatalogDB(execution)</bpmn:script>
def activateNssi = new DoActivateCoreNSSI()
activateNssi.prepareSOMacroRequestPayLoad(execution)</bpmn:script>
</bpmn:scriptTask>
- <bpmn:scriptTask id="ScriptTask_0lxbaxd" name="Call AAI &#10;update sliceProlie service Instance status" scriptFormat="groovy">
- <bpmn:incoming>SequenceFlow_1e20i9g</bpmn:incoming>
+ <bpmn:scriptTask id="ScriptTask_0lxbaxd" name="Call AAIÂ &#10;update sliceProlie service Instance status" scriptFormat="groovy">
+ <bpmn:incoming>Flow_09eevay</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0j0egoi</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def activateNssi = new DoActivateCoreNSSI()
@@ -46,38 +46,9 @@ activateNssi.getNetworkInstanceWithSPInstanceAssociatedWithNssiId(execution)</bp
def activateNssi = new DoActivateCoreNSSI()
activateNssi.sendPutRequestToSOMacro(execution)</bpmn:script>
</bpmn:scriptTask>
- <bpmn:scriptTask id="ScriptTask_1frasll" name="Prepare Call CheckServiceProcessStatus" scriptFormat="groovy">
- <bpmn:incoming>Flow_039sx2v</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_18x9gdi</bpmn:outgoing>
- <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
-def activateNssi = new DoActivateCoreNSSI()
-activateNssi.prepareCallCheckProcessStatus(execution)</bpmn:script>
- </bpmn:scriptTask>
- <bpmn:callActivity id="CallActivity_11hntoj" name="CallCheckServiceProcessStatus" calledElement="CheckServiceProcessStatus">
- <bpmn:extensionElements>
- <camunda:in source="networkServiceInstanceId" target="serviceInstanceId" />
- <camunda:in source="macroOperationId" target="operationId" />
- <camunda:in source="successConditions" target="successConditions" />
- <camunda:in source="errorConditions" target="errorConditions" />
- <camunda:in source="processServiceType" target="processServiceType" />
- <camunda:in source="timeOut" target="timeOut" />
- <camunda:out source="operationStatus" target="result" />
- <camunda:out source="operationContent" target="reason" />
- <camunda:out source="WorkflowException" target="WorkflowException" />
- <camunda:out source="isTimeOut" target="isTimeOut" />
- <camunda:in source="subOperationType" target="operationType" />
- <camunda:in source="initProgress" target="initProgress" />
- <camunda:in source="endProgress" target="endProgress" />
- <camunda:in source="serviceInstanceID" target="parentServiceInstanceId" />
- <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
- <camunda:in source="operationId" target="parentOperationId" />
- </bpmn:extensionElements>
- <bpmn:incoming>SequenceFlow_18x9gdi</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_1l9ry0a</bpmn:outgoing>
- </bpmn:callActivity>
- <bpmn:scriptTask id="ScriptTask_1sfn88d" name="Prepare update Service operation status " scriptFormat="groovy">
- <bpmn:incoming>SequenceFlow_1l9ry0a</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_0wx21io</bpmn:outgoing>
+ <bpmn:scriptTask id="ScriptTask_1sfn88d" name="Prepare update Service operation status " scriptFormat="groovy">
+ <bpmn:incoming>Flow_1a7o8s7</bpmn:incoming>
+ <bpmn:outgoing>Flow_09eevay</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def activateNssi = new DoActivateCoreNSSI()
activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script>
@@ -86,7 +57,6 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script>
<bpmn:sequenceFlow id="SequenceFlow_139ejmn" sourceRef="ScriptTask_1x13jc1" targetRef="ScriptTask_1rjha8r" />
<bpmn:sequenceFlow id="SequenceFlow_1654pt0" sourceRef="ScriptTask_1rjha8r" targetRef="ScriptTask_0usuysi" />
<bpmn:sequenceFlow id="SequenceFlow_09nihof" sourceRef="ScriptTask_0usuysi" targetRef="ScriptTask_1t06mlw" />
- <bpmn:sequenceFlow id="SequenceFlow_1l9ry0a" sourceRef="CallActivity_11hntoj" targetRef="ScriptTask_1sfn88d" />
<bpmn:sequenceFlow id="SequenceFlow_0fbr356" sourceRef="ScriptTask_1t06mlw" targetRef="IntermediateThrowEvent_0gueutz" />
<bpmn:intermediateThrowEvent id="IntermediateThrowEvent_0gueutz" name="Call SO macro api">
<bpmn:incoming>SequenceFlow_0fbr356</bpmn:incoming>
@@ -98,25 +68,15 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script>
<bpmn:linkEventDefinition name="CallSO" />
</bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="SequenceFlow_0rjd7tg" sourceRef="ScriptTask_1tfpgcs" targetRef="Gateway_03lo8jx" />
- <bpmn:exclusiveGateway id="ExclusiveGateway_02nqn2k" name="is TimeOut?" default="SequenceFlow_07u1gfw">
- <bpmn:incoming>SequenceFlow_0wx21io</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_1e20i9g</bpmn:outgoing>
- <bpmn:outgoing>SequenceFlow_07u1gfw</bpmn:outgoing>
- </bpmn:exclusiveGateway>
- <bpmn:sequenceFlow id="SequenceFlow_0wx21io" sourceRef="ScriptTask_1sfn88d" targetRef="ExclusiveGateway_02nqn2k" />
- <bpmn:sequenceFlow id="SequenceFlow_1e20i9g" name="No" sourceRef="ExclusiveGateway_02nqn2k" targetRef="ScriptTask_0lxbaxd">
- <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("isTimeOut") == "NO")}</bpmn:conditionExpression>
- </bpmn:sequenceFlow>
<bpmn:endEvent id="EndEvent_1061mty" name="End">
<bpmn:incoming>SequenceFlow_0v0dntm</bpmn:incoming>
</bpmn:endEvent>
- <bpmn:sequenceFlow id="SequenceFlow_18x9gdi" sourceRef="ScriptTask_1frasll" targetRef="CallActivity_11hntoj" />
<bpmn:exclusiveGateway id="Gateway_03lo8jx" name="is SO Response OK?" default="Flow_1jchhgj">
<bpmn:incoming>SequenceFlow_0rjd7tg</bpmn:incoming>
<bpmn:outgoing>Flow_039sx2v</bpmn:outgoing>
<bpmn:outgoing>Flow_1jchhgj</bpmn:outgoing>
</bpmn:exclusiveGateway>
- <bpmn:sequenceFlow id="Flow_039sx2v" name="Yes" sourceRef="Gateway_03lo8jx" targetRef="ScriptTask_1frasll">
+ <bpmn:sequenceFlow id="Flow_039sx2v" name="Yes" sourceRef="Gateway_03lo8jx" targetRef="Activity_14jev2r">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("isSOResponseSucceed" ) == "yes")}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:serviceTask id="ServiceTask_02x7eqy" name="Update Service Operation Status">
@@ -130,7 +90,7 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script>
<camunda:entry key="Authorization">Basic YnBlbDpwYXNzd29yZDEk</camunda:entry>
</camunda:map>
</camunda:inputParameter>
- <camunda:inputParameter name="payload">${updateOperationStatus}</camunda:inputParameter>
+ <camunda:inputParameter name="payload">${updateResourceOperationStatus}</camunda:inputParameter>
<camunda:inputParameter name="method">POST</camunda:inputParameter>
<camunda:outputParameter name="NSSMF_dbResponseCode">${statusCode}</camunda:outputParameter>
<camunda:outputParameter name="NSSMF_dbResponse">${response}</camunda:outputParameter>
@@ -140,13 +100,11 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1jchhgj</bpmn:incoming>
<bpmn:incoming>SequenceFlow_0j0egoi</bpmn:incoming>
- <bpmn:incoming>SequenceFlow_07u1gfw</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0v0dntm</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="SequenceFlow_0v0dntm" sourceRef="ServiceTask_02x7eqy" targetRef="EndEvent_1061mty" />
<bpmn:sequenceFlow id="Flow_1jchhgj" name="No" sourceRef="Gateway_03lo8jx" targetRef="ServiceTask_02x7eqy" />
<bpmn:sequenceFlow id="SequenceFlow_0j0egoi" sourceRef="ScriptTask_0lxbaxd" targetRef="ServiceTask_02x7eqy" />
- <bpmn:sequenceFlow id="SequenceFlow_07u1gfw" name="Yes" sourceRef="ExclusiveGateway_02nqn2k" targetRef="ServiceTask_02x7eqy" />
<bpmn:subProcess id="Activity_1tmdw60" name="Sub-process for FalloutHandler and Rollback" triggeredByEvent="true">
<bpmn:startEvent id="Event_159txw2">
<bpmn:outgoing>Flow_149oqyp</bpmn:outgoing>
@@ -196,225 +154,236 @@ activateNssi.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<bpmn:sequenceFlow id="Flow_149oqyp" sourceRef="Event_159txw2" targetRef="Activity_0u4a0ry" />
<bpmn:sequenceFlow id="Flow_1qooaff" sourceRef="Activity_0u3yna7" targetRef="Event_0c1ec2y" />
</bpmn:subProcess>
+ <bpmn:scriptTask id="Activity_14jev2r" name="Call Get SO PUT progress" scriptFormat="groovy">
+ <bpmn:incoming>Flow_0q5mlhf</bpmn:incoming>
+ <bpmn:incoming>Flow_039sx2v</bpmn:incoming>
+ <bpmn:outgoing>Flow_1mtsx52</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def activateNssi = new DoActivateCoreNSSI()
+activateNssi.getSOPUTProgress(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:exclusiveGateway id="Gateway_0fdseyg" default="Flow_1a7o8s7">
+ <bpmn:incoming>Flow_1mtsx52</bpmn:incoming>
+ <bpmn:outgoing>Flow_1ocji6k</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1a7o8s7</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:scriptTask id="Activity_0fbp09r" name="Time Delay 5s" scriptFormat="groovy">
+ <bpmn:incoming>Flow_1ocji6k</bpmn:incoming>
+ <bpmn:outgoing>Flow_0q5mlhf</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def activateNssi = new DoActivateCoreNSSI()
+activateNssi.timeDelay()</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:sequenceFlow id="Flow_0q5mlhf" sourceRef="Activity_0fbp09r" targetRef="Activity_14jev2r" />
+ <bpmn:sequenceFlow id="Flow_1ocji6k" name="requestState=IN_PROGRESS" sourceRef="Gateway_0fdseyg" targetRef="Activity_0fbp09r">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("requestState" ) == "IN_PROGRESS")}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="Flow_1mtsx52" sourceRef="Activity_14jev2r" targetRef="Gateway_0fdseyg" />
+ <bpmn:sequenceFlow id="Flow_1a7o8s7" sourceRef="Gateway_0fdseyg" targetRef="ScriptTask_1sfn88d" />
+ <bpmn:sequenceFlow id="Flow_09eevay" sourceRef="ScriptTask_1sfn88d" targetRef="ScriptTask_0lxbaxd" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoActivateCoreNSSI">
- <bpmndi:BPMNEdge id="SequenceFlow_07u1gfw_di" bpmnElement="SequenceFlow_07u1gfw">
- <di:waypoint x="976" y="319" />
- <di:waypoint x="1123" y="319" />
+ <bpmndi:BPMNEdge id="Flow_09eevay_di" bpmnElement="Flow_09eevay">
+ <di:waypoint x="1020" y="319" />
+ <di:waypoint x="1090" y="319" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1a7o8s7_di" bpmnElement="Flow_1a7o8s7">
+ <di:waypoint x="845" y="319" />
+ <di:waypoint x="920" y="319" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1mtsx52_di" bpmnElement="Flow_1mtsx52">
+ <di:waypoint x="690" y="319" />
+ <di:waypoint x="795" y="319" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1ocji6k_di" bpmnElement="Flow_1ocji6k">
+ <di:waypoint x="820" y="344" />
+ <di:waypoint x="820" y="378" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1041" y="301" width="18" height="14" />
+ <dc:Bounds x="743" y="342" width="78" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0q5mlhf_di" bpmnElement="Flow_0q5mlhf">
+ <di:waypoint x="770" y="418" />
+ <di:waypoint x="640" y="418" />
+ <di:waypoint x="640" y="359" />
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0j0egoi_di" bpmnElement="SequenceFlow_0j0egoi">
- <di:waypoint x="1099" y="258" />
- <di:waypoint x="1173" y="258" />
- <di:waypoint x="1173" y="279" />
+ <di:waypoint x="1190" y="319" />
+ <di:waypoint x="1253" y="319" />
<bpmndi:BPMNLabel>
<dc:Bounds x="376" y="387" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1jchhgj_di" bpmnElement="Flow_1jchhgj">
- <di:waypoint x="400" y="344" />
- <di:waypoint x="400" y="450" />
- <di:waypoint x="1190" y="450" />
- <di:waypoint x="1190" y="360" />
+ <di:waypoint x="460" y="344" />
+ <di:waypoint x="460" y="480" />
+ <di:waypoint x="1320" y="480" />
+ <di:waypoint x="1320" y="359" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="788" y="432" width="15" height="14" />
+ <dc:Bounds x="883" y="462" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0v0dntm_di" bpmnElement="SequenceFlow_0v0dntm">
- <di:waypoint x="1223" y="319" />
- <di:waypoint x="1263" y="319" />
+ <di:waypoint x="1353" y="319" />
+ <di:waypoint x="1393" y="319" />
<bpmndi:BPMNLabel>
<dc:Bounds x="483" y="448" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_039sx2v_di" bpmnElement="Flow_039sx2v">
- <di:waypoint x="425" y="319" />
- <di:waypoint x="470" y="319" />
+ <di:waypoint x="485" y="319" />
+ <di:waypoint x="590" y="319" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="439" y="301" width="18" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_18x9gdi_di" bpmnElement="SequenceFlow_18x9gdi">
- <di:waypoint x="570" y="319" />
- <di:waypoint x="610" y="319" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="-180.5" y="448" width="0" height="12" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1e20i9g_di" bpmnElement="SequenceFlow_1e20i9g">
- <di:waypoint x="951" y="294" />
- <di:waypoint x="951" y="258" />
- <di:waypoint x="999" y="258" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="959" y="273" width="15" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0wx21io_di" bpmnElement="SequenceFlow_0wx21io">
- <di:waypoint x="868" y="319" />
- <di:waypoint x="926" y="319" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="137" y="448" width="0" height="12" />
+ <dc:Bounds x="532" y="301" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0rjd7tg_di" bpmnElement="SequenceFlow_0rjd7tg">
- <di:waypoint x="330" y="319" />
- <di:waypoint x="375" y="319" />
+ <di:waypoint x="380" y="319" />
+ <di:waypoint x="435" y="319" />
<bpmndi:BPMNLabel>
<dc:Bounds x="-336" y="448" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_1mi4waj_di" bpmnElement="SequenceFlow_1mi4waj">
- <di:waypoint x="178" y="319" />
- <di:waypoint x="230" y="319" />
+ <di:waypoint x="218" y="319" />
+ <di:waypoint x="280" y="319" />
<bpmndi:BPMNLabel>
<dc:Bounds x="-489.5" y="448" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0fbr356_di" bpmnElement="SequenceFlow_0fbr356">
- <di:waypoint x="1020" y="120" />
- <di:waypoint x="1132" y="120" />
+ <di:waypoint x="1150" y="120" />
+ <di:waypoint x="1262" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="384" y="249" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1l9ry0a_di" bpmnElement="SequenceFlow_1l9ry0a">
- <di:waypoint x="710" y="319" />
- <di:waypoint x="768" y="319" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="-21" y="448" width="0" height="12" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_09nihof_di" bpmnElement="SequenceFlow_09nihof">
- <di:waypoint x="820" y="120" />
- <di:waypoint x="920" y="120" />
+ <di:waypoint x="950" y="120" />
+ <di:waypoint x="1050" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="-460" y="189" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_1654pt0_di" bpmnElement="SequenceFlow_1654pt0">
- <di:waypoint x="610" y="120" />
- <di:waypoint x="720" y="120" />
+ <di:waypoint x="740" y="120" />
+ <di:waypoint x="850" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="-910" y="189" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_139ejmn_di" bpmnElement="SequenceFlow_139ejmn">
- <di:waypoint x="430" y="120" />
- <di:waypoint x="510" y="120" />
+ <di:waypoint x="560" y="120" />
+ <di:waypoint x="640" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="-381" y="245" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0wwo1lh_di" bpmnElement="SequenceFlow_0wwo1lh">
- <di:waypoint x="242" y="120" />
- <di:waypoint x="330" y="120" />
+ <di:waypoint x="372" y="120" />
+ <di:waypoint x="460" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="-489.5" y="249" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="StartEvent_0lgslwq_di" bpmnElement="StartEvent_0lgslwq">
- <dc:Bounds x="206" y="102" width="36" height="36" />
+ <dc:Bounds x="336" y="102" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="211" y="142" width="25" height="14" />
+ <dc:Bounds x="341" y="142" width="25" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1x13jc1_di" bpmnElement="ScriptTask_1x13jc1">
- <dc:Bounds x="330" y="80" width="100" height="80" />
+ <dc:Bounds x="460" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_0usuysi_di" bpmnElement="ScriptTask_0usuysi">
- <dc:Bounds x="720" y="80" width="100" height="80" />
+ <dc:Bounds x="850" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1t06mlw_di" bpmnElement="ScriptTask_1t06mlw">
- <dc:Bounds x="920" y="80" width="100" height="80" />
+ <dc:Bounds x="1050" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_0lxbaxd_di" bpmnElement="ScriptTask_0lxbaxd">
- <dc:Bounds x="999" y="218" width="100" height="80" />
+ <dc:Bounds x="1090" y="279" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1rjha8r_di" bpmnElement="ScriptTask_1rjha8r">
- <dc:Bounds x="510" y="80" width="100" height="80" />
+ <dc:Bounds x="640" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1tfpgcs_di" bpmnElement="ScriptTask_1tfpgcs">
- <dc:Bounds x="230" y="279" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_1frasll_di" bpmnElement="ScriptTask_1frasll">
- <dc:Bounds x="470" y="279" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="CallActivity_11hntoj_di" bpmnElement="CallActivity_11hntoj">
- <dc:Bounds x="610" y="279" width="100" height="80" />
+ <dc:Bounds x="280" y="279" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1sfn88d_di" bpmnElement="ScriptTask_1sfn88d">
- <dc:Bounds x="768" y="279" width="100" height="80" />
+ <dc:Bounds x="920" y="279" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="IntermediateThrowEvent_1808y0j_di" bpmnElement="IntermediateThrowEvent_0gueutz">
- <dc:Bounds x="1132" y="102" width="36" height="36" />
+ <dc:Bounds x="1262" y="102" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1106" y="142" width="90" height="14" />
+ <dc:Bounds x="1236" y="142" width="90" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="IntermediateCatchEvent_11m7660_di" bpmnElement="IntermediateThrowEvent_150o0dl">
- <dc:Bounds x="142" y="301" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="115" y="341" width="90" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ExclusiveGateway_02nqn2k_di" bpmnElement="ExclusiveGateway_02nqn2k" isMarkerVisible="true">
- <dc:Bounds x="926" y="294" width="50" height="50" />
+ <dc:Bounds x="182" y="301" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="922" y="354" width="59" height="14" />
+ <dc:Bounds x="155" y="341" width="90" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="EndEvent_1061mty_di" bpmnElement="EndEvent_1061mty">
- <dc:Bounds x="1263" y="301" width="36" height="36" />
+ <dc:Bounds x="1393" y="301" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1271" y="344" width="20" height="14" />
+ <dc:Bounds x="1401" y="344" width="20" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_03lo8jx_di" bpmnElement="Gateway_03lo8jx" isMarkerVisible="true">
- <dc:Bounds x="375" y="294" width="50" height="50" />
+ <dc:Bounds x="435" y="294" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="360" y="264" width="80" height="27" />
+ <dc:Bounds x="420" y="256.5" width="80" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ServiceTask_02x7eqy_di" bpmnElement="ServiceTask_02x7eqy">
- <dc:Bounds x="1123" y="279" width="100" height="80" />
+ <dc:Bounds x="1253" y="279" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tmdw60_di" bpmnElement="Activity_1tmdw60" isExpanded="true">
- <dc:Bounds x="400" y="560" width="781" height="196" />
+ <dc:Bounds x="530" y="560" width="781" height="196" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1qooaff_di" bpmnElement="Flow_1qooaff">
- <di:waypoint x="960" y="664" />
- <di:waypoint x="1068" y="664" />
+ <di:waypoint x="1090" y="664" />
+ <di:waypoint x="1198" y="664" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_149oqyp_di" bpmnElement="Flow_149oqyp">
- <di:waypoint x="466" y="664" />
- <di:waypoint x="530" y="664" />
+ <di:waypoint x="596" y="664" />
+ <di:waypoint x="660" y="664" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dh5sht_di" bpmnElement="Flow_1dh5sht">
- <di:waypoint x="630" y="664" />
- <di:waypoint x="690" y="664" />
+ <di:waypoint x="760" y="664" />
+ <di:waypoint x="820" y="664" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1iqw69c_di" bpmnElement="Flow_1iqw69c">
- <di:waypoint x="790" y="664" />
- <di:waypoint x="860" y="664" />
+ <di:waypoint x="920" y="664" />
+ <di:waypoint x="990" y="664" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_159txw2_di" bpmnElement="Event_159txw2">
- <dc:Bounds x="430" y="646" width="36" height="36" />
+ <dc:Bounds x="560" y="646" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0c1ec2y_di" bpmnElement="Event_0c1ec2y">
- <dc:Bounds x="1068" y="646" width="36" height="36" />
+ <dc:Bounds x="1198" y="646" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0u3yna7_di" bpmnElement="Activity_0u3yna7">
- <dc:Bounds x="860" y="624" width="100" height="80" />
+ <dc:Bounds x="990" y="624" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0u4a0ry_di" bpmnElement="Activity_0u4a0ry">
- <dc:Bounds x="530" y="624" width="100" height="80" />
+ <dc:Bounds x="660" y="624" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_11422x1_di" bpmnElement="Activity_11422x1">
- <dc:Bounds x="690" y="624" width="100" height="80" />
+ <dc:Bounds x="820" y="624" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_14jev2r_di" bpmnElement="Activity_14jev2r">
+ <dc:Bounds x="590" y="279" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_0fdseyg_di" bpmnElement="Gateway_0fdseyg" isMarkerVisible="true">
+ <dc:Bounds x="795" y="294" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0fbp09r_di" bpmnElement="Activity_0fbp09r">
+ <dc:Bounds x="770" y="378" width="100" height="80" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
-</bpmn:definitions>
+</bpmn:definitions> \ No newline at end of file
diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image b/packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image
index 4dadd1fee4..a1f4fc15ae 100644
--- a/packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image
+++ b/packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image
@@ -1,4 +1,4 @@
-FROM nexus3.onap.org:10001/onap/integration-java11:latest
+FROM adoptopenjdk/openjdk11:jre-11.0.8_10-alpine
ARG http_proxy
ARG https_proxy