Merge "Add JUnit code coverage for InstanceResourceList:"
authorLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Tue, 2 Jun 2020 12:32:40 +0000 (12:32 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 2 Jun 2020 12:32:40 +0000 (12:32 +0000)
15 files changed:
adapters/etsi-sol003-adapter/etsi-sol003-adapter-common/src/main/java/org/onap/so/adapters/etsi/sol003/adapter/common/configuration/AbstractServiceProviderConfiguration.java [moved from adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/AbstractServiceProviderConfiguration.java with 88% similarity]
adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/vnfm/VnfmServiceProviderConfiguration.java
adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/pkgm/extclients/AbstractServiceProviderConfiguration.java [deleted file]
adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/pkgm/extclients/etsicatalog/EtsiCatalogServiceProviderConfiguration.java
adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/pkgm/extclients/vnfm/VnfmHttpServiceProviderConfiguration.java
adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java
adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfAdapterAsyncImplTest.java
adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfAdapterImplTest.java
bpmn/mso-infrastructure-bpmn/src/main/resources/application.yaml
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteSliceService.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy
bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/DeleteSliceService.bpmn
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/SdncInputParametersProvider.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/e2eserviceinstancebeans/E2EServiceInstanceDeleteRequest.java
packages/docker/pom.xml

@@ -1,27 +1,25 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
+ *  Copyright (C) 2020 Ericsson. 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.
- *
+ * 
  * SPDX-License-Identifier: Apache-2.0
  * ============LICENSE_END=========================================================
  */
-
-package org.onap.so.adapters.etsisol003adapter.lcm.extclients;
+package org.onap.so.adapters.etsi.sol003.adapter.common.configuration;
 
 import java.util.Iterator;
-import org.onap.so.adapters.etsisol003adapter.lcm.v1.JSON;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.json.GsonHttpMessageConverter;
 import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
@@ -33,6 +31,7 @@ import com.google.gson.Gson;
  * that will be useful to some such classes.
  *
  * @author gareth.roper@est.tech
+ * @author Waqas Ikram (waqas.ikram@est.tech)
  */
 public abstract class AbstractServiceProviderConfiguration {
 
@@ -43,7 +42,9 @@ public abstract class AbstractServiceProviderConfiguration {
                 iterator.remove();
             }
         }
-        final Gson gson = new JSON().getGson();
-        restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson));
+        restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(getGson()));
     }
+
+    protected abstract Gson getGson();
+
 }
index e35dafb..da727b3 100644 (file)
@@ -39,7 +39,8 @@ import org.apache.http.impl.client.HttpClients;
 import org.apache.http.ssl.SSLContextBuilder;
 import org.onap.aai.domain.yang.EsrSystemInfo;
 import org.onap.aai.domain.yang.EsrVnfm;
-import org.onap.so.adapters.etsisol003adapter.lcm.extclients.AbstractServiceProviderConfiguration;
+import org.onap.so.adapters.etsi.sol003.adapter.common.configuration.AbstractServiceProviderConfiguration;
+import org.onap.so.adapters.etsisol003adapter.lcm.v1.JSON;
 import org.onap.so.configuration.rest.BasicHttpHeadersProvider;
 import org.onap.so.rest.service.HttpRestServiceProvider;
 import org.onap.so.rest.service.HttpRestServiceProviderImpl;
@@ -55,6 +56,7 @@ import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.security.oauth2.client.OAuth2RestTemplate;
 import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails;
 import org.springframework.web.client.RestTemplate;
+import com.google.gson.Gson;
 
 /**
  * Configures the HttpRestServiceProvider for REST call to a VNFM.
@@ -151,4 +153,9 @@ public class VnfmServiceProviderConfiguration extends AbstractServiceProviderCon
         }
     }
 
+    @Override
+    protected Gson getGson() {
+        return new JSON().getGson();
+    }
+
 }
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/pkgm/extclients/AbstractServiceProviderConfiguration.java b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/pkgm/extclients/AbstractServiceProviderConfiguration.java
deleted file mode 100644 (file)
index f9da698..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.etsisol003adapter.pkgm.extclients;
-
-import java.time.LocalDateTime;
-import java.util.Iterator;
-import org.onap.so.adapters.etsisol003adapter.pkgm.JSON;
-import org.onap.so.adapters.etsisol003adapter.pkgm.rest.EtsiSubscriptionNotificationController;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.GsonHttpMessageConverter;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-import org.springframework.web.client.RestTemplate;
-import org.threeten.bp.OffsetDateTime;
-import com.google.gson.Gson;
-
-/**
- * A base class that can be extended by classes for configuring HttpRestServiceProvider classes. Provides common methods
- * that will be useful to some such classes.
- *
- * @author gareth.roper@est.tech
- */
-public abstract class AbstractServiceProviderConfiguration {
-    private final JSON.OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new JSON.OffsetDateTimeTypeAdapter();
-
-    public void setGsonMessageConverter(final RestTemplate restTemplate) {
-        final Iterator<HttpMessageConverter<?>> iterator = restTemplate.getMessageConverters().iterator();
-        while (iterator.hasNext()) {
-            if (iterator.next() instanceof MappingJackson2HttpMessageConverter) {
-                iterator.remove();
-            }
-        }
-        final Gson gson = JSON.createGson().registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter)
-                .registerTypeAdapter(LocalDateTime.class,
-                        new EtsiSubscriptionNotificationController.LocalDateTimeTypeAdapter())
-                .create();
-        restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson));
-    }
-}
index 5caeebe..1ff3672 100644 (file)
@@ -25,7 +25,6 @@ import java.security.KeyManagementException;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.CertificateException;
-import java.util.Iterator;
 import java.util.concurrent.TimeUnit;
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.SSLContext;
@@ -40,7 +39,7 @@ import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
 import org.apache.http.ssl.SSLContextBuilder;
 import org.onap.logging.filter.spring.SpringClientPayloadFilter;
-import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.AbstractServiceProviderConfiguration;
+import org.onap.so.adapters.etsi.sol003.adapter.common.configuration.AbstractServiceProviderConfiguration;
 import org.onap.so.configuration.rest.BasicHttpHeadersProvider;
 import org.onap.so.configuration.rest.HttpClientConnectionConfiguration;
 import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
@@ -56,12 +55,8 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.Resource;
 import org.springframework.http.client.BufferingClientHttpRequestFactory;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.GsonHttpMessageConverter;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.client.RestTemplate;
 import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
 
 /**
  * Configures the HttpRestServiceProvider to make REST calls to the ETSI Catalog Manager
@@ -173,15 +168,9 @@ public class EtsiCatalogServiceProviderConfiguration extends AbstractServiceProv
 
     }
 
-    public void setGsonMessageConverter(final RestTemplate restTemplate) {
-        final Iterator<HttpMessageConverter<?>> iterator = restTemplate.getMessageConverters().iterator();
-        while (iterator.hasNext()) {
-            if (iterator.next() instanceof MappingJackson2HttpMessageConverter) {
-                iterator.remove();
-            }
-        }
-        final Gson gson = new GsonBuilder().create();
-        restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson));
+    @Override
+    protected Gson getGson() {
+        return new JSON().getGson();
     }
 
 }
index 568c3df..22bbef9 100644 (file)
 package org.onap.so.adapters.etsisol003adapter.pkgm.extclients.vnfm;
 
 import static org.onap.so.client.RestTemplateConfig.CONFIGURABLE_REST_TEMPLATE;
-import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.AbstractServiceProviderConfiguration;
+import java.time.LocalDateTime;
+import java.time.OffsetDateTime;
+import org.onap.so.adapters.etsi.sol003.adapter.common.configuration.AbstractServiceProviderConfiguration;
+import org.onap.so.adapters.etsisol003adapter.pkgm.JSON;
+import org.onap.so.adapters.etsisol003adapter.pkgm.rest.EtsiSubscriptionNotificationController;
 import org.onap.so.configuration.rest.BasicHttpHeadersProvider;
 import org.onap.so.rest.service.HttpRestServiceProvider;
 import org.onap.so.rest.service.HttpRestServiceProviderImpl;
@@ -29,6 +33,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.client.RestTemplate;
+import com.google.gson.Gson;
 
 /**
  * @author Waqas Ikram (waqas.ikram@est.tech)
@@ -36,6 +41,8 @@ import org.springframework.web.client.RestTemplate;
  */
 @Configuration
 public class VnfmHttpServiceProviderConfiguration extends AbstractServiceProviderConfiguration {
+    private final JSON.OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new JSON.OffsetDateTimeTypeAdapter();
+
     public static final String VNFM_ADAPTER_HTTP_SERVICE_PROVIDER_BEAN = "vnfmAdapterHttpServiceProvider";
 
     @Bean
@@ -46,4 +53,12 @@ public class VnfmHttpServiceProviderConfiguration extends AbstractServiceProvide
         return new HttpRestServiceProviderImpl(restTemplate, new BasicHttpHeadersProvider().getHttpHeaders());
     }
 
+    @Override
+    protected Gson getGson() {
+        return JSON.createGson().registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter)
+                .registerTypeAdapter(LocalDateTime.class,
+                        new EtsiSubscriptionNotificationController.LocalDateTimeTypeAdapter())
+                .create();
+    }
+
 }
index a00b9f9..bbabd7f 100644 (file)
@@ -338,7 +338,7 @@ public class HeatBridgeImpl implements HeatBridgeApi {
     private void updateLInterfaceVlan(final Port port, final LInterface lIf) {
         Vlan vlan = new Vlan();
         Network network = osClient.getNetworkById(port.getNetworkId());
-        if (network.getNetworkType().equals(NetworkType.VLAN)) {
+        if (network.getNetworkType() != null && network.getNetworkType().equals(NetworkType.VLAN)) {
             vlan.setVlanInterface(network.getName() + network.getProviderSegID());
 
             vlan.setVlanIdOuter(Long.parseLong(network.getProviderSegID()));
@@ -352,7 +352,7 @@ public class HeatBridgeImpl implements HeatBridgeApi {
             lIf.setVlans(vlans);
         }
         // Build sriov-vf to the l-interface
-        if (port.getvNicType().equalsIgnoreCase(HeatBridgeConstants.OS_SRIOV_PORT_TYPE)) {
+        if (port.getvNicType() != null && port.getvNicType().equalsIgnoreCase(HeatBridgeConstants.OS_SRIOV_PORT_TYPE)) {
             SriovVfs sriovVfs = new SriovVfs();
             // JAXB does not generate setters for list, however getter ensures its creation.
             // Thus, all list manipulations must be made on live list.
index 1a308b7..92761c8 100644 (file)
@@ -36,6 +36,7 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.onap.so.entity.MsoRequest;
 import org.springframework.beans.factory.annotation.Autowired;
+import static org.junit.Assert.assertNotNull;
 
 public class MsoVnfAdapterAsyncImplTest extends BaseRestTestUtils {
 
@@ -90,6 +91,7 @@ public class MsoVnfAdapterAsyncImplTest extends BaseRestTestUtils {
         msoRequest.setServiceInstanceId("12345");
         instance.deleteVnfA("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12", "messageId",
                 msoRequest, "http://org.onap.so/notify/adapterNotify/updateVnfNotificationRequest");
+        assertNotNull(msoRequest);
     }
 
 }
index 9fc2aba..909a558 100644 (file)
@@ -57,6 +57,7 @@ import org.onap.so.openstack.utils.MsoHeatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.github.tomakehurst.wiremock.WireMockServer;
 import com.github.tomakehurst.wiremock.stubbing.Scenario;
+import static org.junit.Assert.assertNotNull;
 
 
 public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
@@ -86,6 +87,7 @@ public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
                 "VFMOD", null, null, "b4ea86b4-253f-11e7-93ae-92361f002671", map, Boolean.TRUE, Boolean.TRUE,
                 Boolean.FALSE, msoRequest, new Holder<>(), new Holder<Map<String, String>>(),
                 new Holder<VnfRollback>());
+        assertNotNull(map);
     }
 
     @Test
@@ -101,6 +103,7 @@ public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
         instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
                 "VFMOD", null, null, "b4ea86b4-253f-11e7-93ae-92361f002671", map, null, Boolean.TRUE, Boolean.FALSE,
                 msoRequest, new Holder<>(), new Holder<Map<String, String>>(), new Holder<VnfRollback>());
+        assertNotNull(map);
     }
 
     @Test
@@ -132,6 +135,7 @@ public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
                 "VFMOD", null, null, "b4ea86b4-253f-11e7-93ae-92361f002671", map, Boolean.FALSE, Boolean.TRUE,
                 Boolean.FALSE, msoRequest, new Holder<>(), new Holder<Map<String, String>>(),
                 new Holder<VnfRollback>());
+        assertNotNull(map);
     }
 
 
@@ -149,6 +153,7 @@ public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
                 "VFMOD", null, null, "b4ea86b4-253f-11e7-93ae-92361f002671", map, Boolean.TRUE, Boolean.TRUE,
                 Boolean.FALSE, msoRequest, new Holder<>(), new Holder<Map<String, String>>(),
                 new Holder<VnfRollback>());
+        assertNotNull(map);
     }
 
 
@@ -479,6 +484,7 @@ public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
                 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId",
                 "b4ea86b4-253f-11e7-93ae-92361f002671", map, msoRequest, new Holder<Map<String, String>>(),
                 new Holder<VnfRollback>());
+        assertNotNull(msoRequest);
     }
 
     @Test
@@ -499,6 +505,7 @@ public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
         } catch (Exception e) {
 
         }
+        assertNotNull(outputs);
     }
 
     private VfModuleCustomization getVfModuleCustomization() {
index 1ad95b3..e08cf0f 100644 (file)
@@ -5,6 +5,7 @@ server:
 mso:
   infra:
     auditInventory: false
+  camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
 spring: 
   datasource:
     hikari:
@@ -42,3 +43,9 @@ management:
       prometheus:
         enabled: true # Whether exporting of metrics to Prometheus is enabled.
         step: 1m # Step size (i.e. reporting frequency) to use.
+org:
+  onap:
+    so:
+      adapters:
+        network:
+          encryptionKey: 07a7159d3bf51a0e53be7a8f89699be7
index f5e9000..d22ee5e 100644 (file)
@@ -77,7 +77,7 @@ class DeleteSliceService extends AbstractServiceTaskProcessor {
             checkAndSetRequestParam(siRequest,"globalSubscriberId",false, execution)
             checkAndSetRequestParam(siRequest,"serviceType",false, execution)
             checkAndSetRequestParam(siRequest,"operationId",false, execution)
-
+            checkAndSetRequestParam(siRequest,"scriptName",false, execution)
             //prepare init operation status
             execution.setVariable("progress", "0")
             execution.setVariable("result", "processing")
index 4be6ca7..547cb6c 100644 (file)
@@ -139,12 +139,14 @@ class DoDeallocateNSSI extends AbstractServiceTaskProcessor
         String profileId = currentNSSI['profileId']
         String nssiId = currentNSSI['nssiServiceInstanceId']
         String nsiId = currentNSSI['nsiServiceInstanceId']
+        String scriptName = execution.getVariable("scriptName")
 
         DeAllocateNssi deAllocateNssi = new DeAllocateNssi()
         deAllocateNssi.setNsiId(nsiId)
         deAllocateNssi.setNssiId(nssiId)
         deAllocateNssi.setTerminateNssiOption(0)
         deAllocateNssi.setSnssaiList(Arrays.asList(snssai))
+        deAllocateNssi.setScriptName(scriptName)
 
         NssiDeAllocateRequest deAllocateRequest = new NssiDeAllocateRequest()
         deAllocateRequest.setDeAllocateNssi(deAllocateNssi)
index 3024e39..8dd326a 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_0prw6yo" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.4.1">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_0prw6yo" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="2.2.3">
   <bpmn:process id="DeleteSliceService" name="DeleteSliceService" isExecutable="true">
     <bpmn:startEvent id="StartEvent_1" name="start">
       <bpmn:outgoing>SequenceFlow_1ti9sxe</bpmn:outgoing>
@@ -102,6 +102,7 @@ dss.deleteSliceServiceInstance(execution)</bpmn:script>
         <camunda:in source="operationId" target="operationId" />
         <camunda:in source="operationType" target="operationType" />
         <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="scriptName" target="scriptName" />
       </bpmn:extensionElements>
       <bpmn:incoming>SequenceFlow_16lh6o6</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0nl4kfh</bpmn:outgoing>
index ce0f2c7..6831a65 100644 (file)
@@ -24,7 +24,6 @@ import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.Constants.EXT_V
 import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.Constants.FORWARD_SLASH;
 import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.Constants.PRELOAD_VNFS_URL;
 import java.io.IOException;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -32,14 +31,14 @@ import java.util.stream.Collectors;
 import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.ExternalVirtualLink;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
+import org.onap.so.jsonpath.JsonPathUtil;
 import org.onap.so.client.sdnc.SDNCClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.jayway.jsonpath.JsonPath;
-import net.minidev.json.JSONArray;
 
 /**
  * This class retrieve pre-load data from SDNC using <br/>
@@ -56,9 +55,12 @@ public class SdncInputParametersProvider extends AbstractInputParametersProvider
 
     private final SDNCClient sdncClient;
 
+    private final ObjectMapper mapper;
+
     @Autowired
     public SdncInputParametersProvider(final SDNCClient sdncClient) {
         this.sdncClient = sdncClient;
+        this.mapper = new ObjectMapper();
     }
 
     @Override
@@ -70,21 +72,23 @@ public class SdncInputParametersProvider extends AbstractInputParametersProvider
         try {
             LOGGER.debug("Will query sdnc for input parameters using url: {}", url);
             final String jsonResponse = sdncClient.get(url);
-
-            final JSONArray vnfParametersArray = JsonPath.read(jsonResponse, VNF_PARAMETERS_PATH);
-            if (vnfParametersArray != null) {
-                for (int index = 0; index < vnfParametersArray.size(); index++) {
-                    final Object vnfParametersObject = vnfParametersArray.get(index);
-                    if (vnfParametersObject instanceof JSONArray) {
-                        final JSONArray vnfParameters = (JSONArray) vnfParametersObject;
-                        final Map<String, String> vnfParametersMap = getVnfParameterMap(vnfParameters);
-                        final Map<String, String> additionalParameters = getAdditionalParameters(vnfParametersMap);
-                        final List<ExternalVirtualLink> extVirtualLinks = getExtVirtualLinks(vnfParametersMap);
-                        final InputParameter inputParameter = new InputParameter(additionalParameters, extVirtualLinks);
-                        LOGGER.info("InputParameter found in sdnc response : {}", inputParameter);
-                        return inputParameter;
-                    }
+            final String json = JsonPathUtil.getInstance().locateResult(jsonResponse, VNF_PARAMETERS_PATH).orElse(null);
+
+            try {
+
+                if (json != null) {
+                    final List<VnfParameter> vnfParametersArray =
+                            mapper.readValue(json, new TypeReference<List<VnfParameter>>() {});
+                    final Map<String, String> vnfParametersMap = getVnfParameterMap(vnfParametersArray);
+                    final Map<String, String> additionalParameters = getAdditionalParameters(vnfParametersMap);
+                    final List<ExternalVirtualLink> extVirtualLinks = getExtVirtualLinks(vnfParametersMap);
+                    final InputParameter inputParameter = new InputParameter(additionalParameters, extVirtualLinks);
+                    LOGGER.info("InputParameter found in sdnc response : {}", inputParameter);
+                    return inputParameter;
                 }
+
+            } catch (final IOException exception) {
+                LOGGER.error("Unable to parse vnf parameters : {}", json, exception);
             }
         } catch (final Exception exception) {
             LOGGER.error("Unable to retrieve/parse input parameters using URL: {} ", url, exception);
@@ -112,19 +116,12 @@ public class SdncInputParametersProvider extends AbstractInputParametersProvider
     }
 
 
-    private Map<String, String> getVnfParameterMap(final JSONArray array) {
-        try {
-            if (array != null) {
-                final ObjectMapper mapper = new ObjectMapper();
-                final VnfParameter[] readValue = mapper.readValue(array.toJSONString(), VnfParameter[].class);
-                LOGGER.debug("Vnf parameters: {}", Arrays.asList(readValue));
-                return Arrays.asList(readValue).stream()
-                        .filter(vnfParam -> vnfParam.getName() != null && vnfParam.getValue() != null)
-                        .collect(Collectors.toMap(VnfParameter::getName, VnfParameter::getValue));
-            }
-        } catch (final IOException exception) {
-            LOGGER.error("Unable to parse vnf parameters : {}", array, exception);
+    private Map<String, String> getVnfParameterMap(final List<VnfParameter> array) {
+        if (array != null) {
+            return array.stream().filter(vnfParam -> vnfParam.getName() != null && vnfParam.getValue() != null)
+                    .collect(Collectors.toMap(VnfParameter::getName, VnfParameter::getValue));
         }
+
         return Collections.emptyMap();
     }
 
index 3335410..21aa89b 100644 (file)
 package org.onap.so.apihandlerinfra.e2eserviceinstancebeans;
 
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
 public class E2EServiceInstanceDeleteRequest {
 
     private String globalSubscriberId;
 
     private String serviceType;
 
+    @JsonIgnore
+    private String scriptName;
+
     public String getGlobalSubscriberId() {
         return globalSubscriberId;
     }
@@ -43,4 +48,11 @@ public class E2EServiceInstanceDeleteRequest {
         this.serviceType = serviceType;
     }
 
+    public String getScriptName() {
+        return scriptName;
+    }
+
+    public void setScriptName(String scriptName) {
+        this.scriptName = scriptName;
+    }
 }
index 217a5fd..1862bd1 100644 (file)
         <groupId>io.fabric8</groupId>
         <artifactId>docker-maven-plugin</artifactId>
         <version>0.31.0</version>
-
-        <configuration>
+        <configuration combine.self="override">
           <verbose>true</verbose>
           <apiVersion>1.23</apiVersion>
           <pullRegistry>${docker.pull.registry}</pullRegistry>
           <pushRegistry>${docker.push.registry}</pushRegistry>
-
           <images>
             <image>
               <name>${docker.image.prefix}/base-image:1.0</name>