/*- * ============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.openecomp.mso.apihandlerinfra; import org.apache.http.HttpResponse; import org.apache.http.ProtocolVersion; import org.apache.http.entity.BasicHttpEntity; import org.apache.http.message.BasicHttpResponse; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import javax.ws.rs.core.Response; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.Collections; import java.util.HashMap; import java.util.List; import org.openecomp.mso.apihandler.common.CamundaClient; import org.openecomp.mso.apihandler.common.RequestClient; import org.openecomp.mso.apihandler.common.RequestClientFactory; import org.openecomp.mso.db.catalog.CatalogDatabase; import org.openecomp.mso.db.catalog.beans.*; import org.openecomp.mso.properties.MsoJavaProperties; import org.openecomp.mso.properties.MsoPropertiesException; import org.openecomp.mso.properties.MsoPropertiesFactory; import org.openecomp.mso.requestsdb.InfraActiveRequests; import org.openecomp.mso.requestsdb.RequestsDatabase; import mockit.Mock; import mockit.MockUp; public class ServiceInstanceTest { /*** Create Service Instance Test Cases ***/ @BeforeClass public static void setUp() throws Exception { MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory(); msoPropertiesFactory.removeAllMsoProperties(); msoPropertiesFactory.initializeMsoProperties(Constants.MSO_PROP_APIHANDLER_INFRA, "src/test/resources/mso.apihandler-infra.properties"); } @Test public void createServiceInstanceInvalidModelInfo(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v5"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid model-info is specified")); } @Test public void createServiceInstanceNormalDuplicate(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return new InfraActiveRequests(); } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains( "Locked instance - This service (testService) already has a request being worked with a status of null (RequestId - null). The existing request must finish or be cleaned up before proceeding.")); } @Test public void createServiceInstanceTestDBException(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Exception while creating record in DB") && respBody.contains("NullPointerException")); } @Ignore // 1802 merge @Test public void createServiceInstanceTestBpmnFail(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Failed calling bpmn properties")); // was: Request Failed due to BPEL error } @Test(expected = Exception.class) public void createServiceInstanceTest200Http(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; new MockUp() { @Mock public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{ RequestClient client = new CamundaClient(); client.setUrl("/test/url"); return client; } }; new MockUp() { @Mock public HttpResponse post(String requestId, boolean isBaseVfModule, int recipeTimeout, String requestAction, String serviceInstanceId, String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId, String serviceType, String vnfType, String vfModuleType, String networkType, String requestDetails, String recipeParamXsd){ ProtocolVersion pv = new ProtocolVersion("HTTP",1,1); HttpResponse resp = new BasicHttpResponse(pv,200, "test response"); BasicHttpEntity entity = new BasicHttpEntity(); String body = "{\"response\":\"success\",\"message\":\"success\"}"; InputStream instream = new ByteArrayInputStream(body.getBytes()); entity.setContent(instream); resp.setEntity(entity); return resp; } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); } @Test public void createServiceInstanceTest500Http(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; new MockUp() { @Mock public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{ RequestClient client = new CamundaClient(); client.setUrl("/test/url"); return client; } }; new MockUp() { @Mock public HttpResponse post(String requestId, boolean isBaseVfModule, int recipeTimeout, String requestAction, String serviceInstanceId, String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId, String serviceType, String vnfType, String vfModuleType, String networkType, String requestDetails, String recipeParamXsd){ ProtocolVersion pv = new ProtocolVersion("HTTP",1,1); HttpResponse resp = new BasicHttpResponse(pv,500, "test response"); BasicHttpEntity entity = new BasicHttpEntity(); String body = "{\"response\":\"success\",\"message\":\"success\"}"; InputStream instream = new ByteArrayInputStream(body.getBytes()); entity.setContent(instream); resp.setEntity(entity); return resp; } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Request Failed due to BPEL error with HTTP Status")); } @Test public void createServiceInstanceTestVnfModelType(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; new MockUp() { @Mock public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{ RequestClient client = new CamundaClient(); client.setUrl("/test/url"); return client; } }; new MockUp() { @Mock public HttpResponse post(String requestId, boolean isBaseVfModule, int recipeTimeout, String requestAction, String serviceInstanceId, String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId, String serviceType, String vnfType, String vfModuleType, String networkType, String requestDetails, String recipeParamXsd){ ProtocolVersion pv = new ProtocolVersion("HTTP",1,1); HttpResponse resp = new BasicHttpResponse(pv,500, "test response"); BasicHttpEntity entity = new BasicHttpEntity(); String body = "{\"response\":\"success\",\"message\":\"success\"}"; InputStream instream = new ByteArrayInputStream(body.getBytes()); entity.setContent(instream); resp.setEntity(entity); return resp; } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"vnf\",\"modelName\":\"serviceModel\",\"modelCustomizationName\":\"test\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v5"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("No valid modelVersionId is specified")); } @Test public void createServiceInstanceTestNullHttpResp(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; new MockUp() { @Mock public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{ RequestClient client = new CamundaClient(); client.setUrl("/test/url"); return client; } }; new MockUp() { @Mock public HttpResponse post(String requestId, boolean isBaseVfModule, int recipeTimeout, String requestAction, String serviceInstanceId, String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId, String serviceType, String vnfType, String vfModuleType, String networkType, String requestDetails, String recipeParamXsd){ return null; } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("bpelResponse is null")); } @Test public void createServiceInstanceNormalNullDBFatch(){ new MockUp() { @Mock private List executeInfraQuery (List criteria, Order order) { return Collections.EMPTY_LIST; } }; ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Recipe could not be retrieved from catalog DB null")); } @Test public void createServiceInstanceInvalidModelVersionId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v5"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelVersionId is specified")); } @Ignore // 1802 merge @Test public void createServiceInstanceNullInstanceName(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid instanceName is specified")); } @Test public void createServiceInstanceNullModelInfo(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid model-info is specified")); } @Test public void createServiceInstanceInvalidModelInvariantId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"1234\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelType is specified")); } @Test public void createServiceInstanceNullModelVersion(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelType is specified")); } @Test public void createServiceInstanceNullModelType(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelType is specified")); } @Test public void createServiceInstanceInvalidModelType(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"testmodel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Mapping of request to JSON object failed.")); } @Ignore // 1802 merge @Test public void createServiceInstanceNullModelName(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\":\"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelName is specified")); } @Ignore // 1802 merge @Test public void createServiceInstanceInvalidVersionForAutoBuildVfModules(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": true,\"subscriptionServiceType\":\"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("AutoBuildVfModule is not valid in the v2 version")); } @Test public void createServiceInstanceNullRequestParameter(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid subscriptionServiceType is specified")); } @Test public void createServiceInstanceNullSubscriptionType(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respBody = resp.getEntity().toString(); assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid subscriptionServiceType is specified")); } @Test public void createServiceInstanceAnbormalInvalidJson(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"name\":\"test\"}"; Response resp = instance.createServiceInstance(requestJson, "v2"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Mapping of request to JSON object failed")); } /*** Activate Service Instance Test Cases ***/ @Test public void activateServiceInstanceAnbormalInvalidJson(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"name\":\"test\"}"; Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Mapping of request to JSON object failed")); } @Test public void activateServiceInstanceInvalidModelVersionId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId in relatedInstance is specified")); } @Test public void activateServiceInstanceInvalidServiceInstanceId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid serviceInstanceId matching the serviceInstanceId in request URI is specified")); } @Test public void activateServiceInstanceTestNormal(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("SVC2000")); } /*** Deactivate Service Instance Test Cases ***/ @Test public void deactivateServiceInstanceAnbormalInvalidJson(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"name\":\"test\"}"; Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Mapping of request to JSON object failed")); } @Test public void deactivateServiceInstanceInvalidModelVersionId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId in relatedInstance is specified")); } @Test public void deactivateServiceInstanceInvalidServiceInstanceId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid serviceInstanceId matching the serviceInstanceId in request URI is specified")); } @Test public void deactivateServiceInstanceTestNormal(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("SVC2000")); } /*** Delete Service Instance Test Cases ***/ @Test public void deleteServiceInstanceAnbormalInvalidJson(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"name\":\"test\"}"; Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Mapping of request to JSON object failed")); } @Test public void deleteServiceInstanceInvalidModelVersionId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId is specified")); } @Test public void deleteServiceInstanceInvalidServiceInstanceId(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}"; Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId is specified")); } @Test public void deleteServiceInstanceTestNormal(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}"; Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("SVC2000")); } /*** Create Vnf Instance Test Cases ***/ @Ignore // 1802 merge @Test public void createVNFInstanceTestInvalidCloudConfiguration(){ ServiceInstances instance = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}"; Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid cloudConfiguration is specified")); } @Test public void createVNFInstanceTestInvalidIcpCloudRegionId(){ ServiceInstances instance = new ServiceInstances(); String s = "\"cloudConfiguration\":{}"; String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"cloudConfiguration\":{}, \"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}"; Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid lcpCloudRegionId is specified")); } @Test public void createVNFInstanceTestInvalidTenantId(){ ServiceInstances instance = new ServiceInstances(); String s = "\"cloudConfiguration\":{}"; String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\"}, \"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}"; Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid tenantId is specified")); } @Test public void createVNFInstanceTestNormal(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) { return 1; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{ RequestClient client = new CamundaClient(); client.setUrl("/test/url"); return client; } }; new MockUp() { @Mock public VnfResource getVnfResourceByModelCustomizationId(String modelCustomizationId) { VnfResource vnfResource = new VnfResource(); return vnfResource; } }; new MockUp() { @Mock public VnfRecipe getVnfRecipe (String vnfType, String action) { VnfRecipe recipe =new VnfRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public HttpResponse post(String requestId, boolean isBaseVfModule, int recipeTimeout, String requestAction, String serviceInstanceId, String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId, String serviceType, String vnfType, String vfModuleType, String networkType, String requestDetails, String recipeParamXsd){ ProtocolVersion pv = new ProtocolVersion("HTTP",1,1); HttpResponse resp = new BasicHttpResponse(pv,200, "test response"); BasicHttpEntity entity = new BasicHttpEntity(); final String body = "{\"response\":\"success\",\"message\":\"success\"}"; InputStream instream = new ByteArrayInputStream(body.getBytes()); entity.setContent(instream); resp.setEntity(entity); return resp; } }; ServiceInstances instance = new ServiceInstances(); String s = "\"cloudConfiguration\":{}"; String requestJson = "{\"serviceInstanceId\":\"1882939\",\"vnfInstanceId\":\"1882938\"," + "\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\":{\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\",\"tenantId\":\"2910032\"}," + "\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\"," + "\"modelInfo\":{\"modelInvariantId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\":{\"source\":\"VID\",\"requestorId\":\"zz9999\",\"instanceName\":\"testService\",\"productFamilyId\":\"productFamilyId1\"}," + "\"requestParameters\":{\"autoBuildVfModules\":false,\"subscriptionServiceType\":\"test\",\"aLaCarte\":false},\"modelInfo\":{\"modelInvariantId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"vnf\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\"}}}"; Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34"); String respStr = resp.getEntity().toString(); assertTrue(respStr.equals("success")); } /*** Replace Vnf Instance Test Cases ***/ @Test public void replaceVNFInstanceTestNormal(){ ServiceInstances instance = new ServiceInstances(); String s = "\"cloudConfiguration\":{}"; String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\",\"tenantId\":\"2910032\"}, \"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}"; Response resp = instance.replaceVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34","557ea944-c83e-43cf-9ed7-3a354abd6d93"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("SVC2000")); } /*** Update Vnf Instance Test Cases ***/ @Test public void updateVNFInstanceTestNormal(){ ServiceInstances instance = new ServiceInstances(); String s = "\"cloudConfiguration\":{}"; String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\",\"tenantId\":\"2910032\"}, \"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}"; Response resp = instance.updateVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34","557ea944-c83e-43cf-9ed7-3a354abd6d93"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("SVC2000")); } /*** Update Vnf Instance Test Cases ***/ @Test public void deleteVNFInstanceTestNormal(){ ServiceInstances instance = new ServiceInstances(); String s = "\"cloudConfiguration\":{}"; String requestJson = "{\"serviceInstanceId\":\"1882939\"," +"\"vnfInstanceId\":\"1882938\"," +"\"networkInstanceId\":\"1882937\"," +"\"volumeGroupInstanceId\":\"1882935\"," +"\"vfModuleInstanceId\":\"1882934\"," + "\"requestDetails\": {\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\",\"tenantId\":\"2910032\"}, \"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}"; Response resp = instance.deleteVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34","557ea944-c83e-43cf-9ed7-3a354abd6d93"); String respStr = resp.getEntity().toString(); assertTrue(respStr.contains("SVC2000")); } @Test public void createVFModuleTestNormal(){ new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) { return 1; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; new MockUp() { @Mock public Service getServiceByModelName (String defaultServiceModelName) { Service serviceRecord = new Service(); serviceRecord.setModelUUID("2883992993"); return serviceRecord; } }; new MockUp() { @Mock public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) { ServiceRecipe recipe =new ServiceRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{ RequestClient client = new CamundaClient(); client.setUrl("/test/url"); return client; } }; new MockUp() { @Mock public VnfResource getVnfResourceByModelCustomizationId(String modelCustomizationId) { VnfResource vnfResource = new VnfResource(); return vnfResource; } }; new MockUp() { @Mock public VnfComponentsRecipe getVnfComponentsRecipeByVfModuleModelUUId (String vfModuleModelUUId, String vnfComponentType, String action) { VnfComponentsRecipe recipe =new VnfComponentsRecipe(); recipe.setOrchestrationUri("/test/mso"); recipe.setRecipeTimeout(1000); return recipe; } }; new MockUp() { @Mock public VfModule getVfModuleByModelUuid(String modelUuid) { VfModule vfModule =new VfModule(); return vfModule; } }; new MockUp() { @Mock public VfModuleCustomization getVfModuleCustomizationByModelCustomizationId(String modelCustomizationUuid) { VfModuleCustomization vfModuleCustomization =new VfModuleCustomization(); final VfModule vfModule = new VfModule(); vfModule.setModelUUID("296e278c-bfa8-496e-b59e-fb1fe715f726"); vfModuleCustomization.setVfModule(vfModule); return vfModuleCustomization; } }; new MockUp() { @Mock public HttpResponse post(String requestId, boolean isBaseVfModule, int recipeTimeout, String requestAction, String serviceInstanceId, String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId, String serviceType, String vnfType, String vfModuleType, String networkType, String requestDetails, String recipeParamXsd){ ProtocolVersion pv = new ProtocolVersion("HTTP",1,1); HttpResponse resp = new BasicHttpResponse(pv,200, "test response"); BasicHttpEntity entity = new BasicHttpEntity(); final String body = "{\"response\":\"success\",\"message\":\"success\"}"; InputStream instream = new ByteArrayInputStream(body.getBytes()); entity.setContent(instream); resp.setEntity(entity); return resp; } }; ServiceInstances instance = new ServiceInstances(); String s = "\"cloudConfiguration\":{}"; String requestJson = "{\"serviceInstanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"vnfInstanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\",\"requestDetails\":{\"requestInfo\":{\"instanceName\":\"vf-inst\",\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"123123\"},\"modelInfo\":{\"modelType\":\"vfModule\",\"modelInvariantId\":\"dde10afa-c732-4f0f-8501-2d2e01ea46ef\",\"modelVersionId\":\"296e278c-bfa8-496e-b59e-fb1fe715f726\",\"modelName\":\"CarrierTosca0::module-1\",\"modelCustomizationId\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelCustomizationName\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelVersion\":\"1.0\"},\"requestParameters\":{\"userParams\":[]},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"EastUS\",\"tenantId\":\"48de34f6-65a1-4d09-84b4-68b011151672\"},\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantId\":\"1192c9b7-bc24-42c9-8f11-415dc679be88\",\"modelVersionId\":\"acb8b74b-afe6-4cc2-92c3-0a09961ab77e\",\"modelName\":\"service\",\"modelVersion\":\"1.0\"}}},{\"relatedInstance\":{\"instanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"modelInfo\":{\"modelType\":\"vnf\",\"modelInvariantId\":\"a545165e-9646-4030-824c-b9d9c66a886a\",\"modelVersionId\":\"a0b6dffe-0de3-4099-8b94-dc05be942914\",\"modelName\":\"vnf-mdoel\",\"modelVersion\":\"1.0\",\"modelCustomizationName\":\"vnf-mdoel 0\"}}}]}}"; Response resp = instance.createVfModuleInstance(requestJson, "v5","43b34d6d-1ab2-4c7a-a3a0-5471306550c5", "7b1ead4f-ea06-45c6-921e-124061e5eae7"); String respStr = resp.getEntity().toString(); assertTrue(respStr.equals("success")); } @Test public void createPortConfigurationTestNormal() { new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) { return 1; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; new MockUp() { @Mock public HttpResponse post(String requestId, boolean isBaseVfModule, int recipeTimeout, String requestAction, String serviceInstanceId, String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId, String serviceType, String vnfType, String vfModuleType, String networkType, String requestDetails, String recipeParamXsd){ ProtocolVersion pv = new ProtocolVersion("HTTP",1,1); HttpResponse resp = new BasicHttpResponse(pv,200, "test response"); BasicHttpEntity entity = new BasicHttpEntity(); final String body = "{\"response\":\"success\",\"message\":\"success\"}"; InputStream instream = new ByteArrayInputStream(body.getBytes()); entity.setContent(instream); resp.setEntity(entity); return resp; } }; ServiceInstances sir = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"vnfInstanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\",\"requestDetails\":{\"requestInfo\":{\"instanceName\":\"vf-inst\",\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"123123\"},\"modelInfo\":{\"modelType\":\"vfModule\",\"modelInvariantId\":\"dde10afa-c732-4f0f-8501-2d2e01ea46ef\",\"modelVersionId\":\"296e278c-bfa8-496e-b59e-fb1fe715f726\",\"modelName\":\"CarrierTosca0::module-1\",\"modelCustomizationId\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelCustomizationName\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelVersion\":\"1.0\"},\"requestParameters\":{\"userParams\":[]},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"EastUS\",\"tenantId\":\"48de34f6-65a1-4d09-84b4-68b011151672\"},\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantId\":\"1192c9b7-bc24-42c9-8f11-415dc679be88\",\"modelVersionId\":\"acb8b74b-afe6-4cc2-92c3-0a09961ab77e\",\"modelName\":\"service\",\"modelVersion\":\"1.0\"}}},{\"relatedInstance\":{\"instanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"modelInfo\":{\"modelType\":\"vnf\",\"modelInvariantId\":\"a545165e-9646-4030-824c-b9d9c66a886a\",\"modelVersionId\":\"a0b6dffe-0de3-4099-8b94-dc05be942914\",\"modelName\":\"vnf-mdoel\",\"modelVersion\":\"1.0\",\"modelCustomizationName\":\"vnf-mdoel 0\"}}}]}}"; final Response response = sir.createPortConfiguration(requestJson, "v5", "43b34d6d-1ab2-4c7a-a3a0-5471306550c5"); } @Test public void createPortConfigurationTestBlankOrchestrationURI() { new MockUp() { @Mock public InfraActiveRequests checkInstanceNameDuplicate (HashMap instanceIdMap, String instanceName, String requestScope) { return null; } }; new MockUp() { @Mock public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) { return 1; } }; new MockUp() { @Mock public void createRequestRecord (Status status, Action action) { return; } }; ServiceInstances sir = new ServiceInstances(); String requestJson = "{\"serviceInstanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"vnfInstanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\",\"requestDetails\":{\"requestInfo\":{\"instanceName\":\"vf-inst\",\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"123123\"},\"modelInfo\":{\"modelType\":\"vfModule\",\"modelInvariantId\":\"dde10afa-c732-4f0f-8501-2d2e01ea46ef\",\"modelVersionId\":\"296e278c-bfa8-496e-b59e-fb1fe715f726\",\"modelName\":\"CarrierTosca0::module-1\",\"modelCustomizationId\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelCustomizationName\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelVersion\":\"1.0\"},\"requestParameters\":{\"userParams\":[]},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"EastUS\",\"tenantId\":\"48de34f6-65a1-4d09-84b4-68b011151672\"},\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantId\":\"1192c9b7-bc24-42c9-8f11-415dc679be88\",\"modelVersionId\":\"acb8b74b-afe6-4cc2-92c3-0a09961ab77e\",\"modelName\":\"service\",\"modelVersion\":\"1.0\"}}},{\"relatedInstance\":{\"instanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"modelInfo\":{\"modelType\":\"vnf\",\"modelInvariantId\":\"a545165e-9646-4030-824c-b9d9c66a886a\",\"modelVersionId\":\"a0b6dffe-0de3-4099-8b94-dc05be942914\",\"modelName\":\"vnf-mdoel\",\"modelVersion\":\"1.0\",\"modelCustomizationName\":\"vnf-mdoel 0\"}}}]}}"; final Response response = sir.createPortConfiguration(requestJson, "v5", "43b34d6d-1ab2-4c7a-a3a0-5471306550c5"); } }