Implement SOL002 specific changes to CSIT vnfm-simulator 57/99857/2
authorPiotr Borelowski <p.borelowski@partner.samsung.com>
Fri, 20 Dec 2019 14:35:24 +0000 (15:35 +0100)
committerPiotr Borelowski <p.borelowski@partner.samsung.com>
Wed, 8 Jan 2020 07:01:13 +0000 (07:01 +0000)
Added sending Notification for SOL002

Issue-ID: INT-1404
Signed-off-by: Piotr Borelowski <p.borelowski@partner.samsung.com>
Change-Id: I017c6e6ca03f9d898798e5c8876795ea44f88a55

plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/api/VeVnfmApi.java [new file with mode: 0644]
plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java
plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/util/PatternContainedChecker.java [new file with mode: 0644]

diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/api/VeVnfmApi.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/api/VeVnfmApi.java
new file mode 100644 (file)
index 0000000..14ee2fd
--- /dev/null
@@ -0,0 +1,86 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Samsung. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.api;
+
+import com.squareup.okhttp.Call;
+import com.squareup.okhttp.Response;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.*;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.api.DefaultApi;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class VeVnfmApi extends DefaultApi {
+
+    public VeVnfmApi(final ApiClient apiClient) {
+        super(apiClient);
+    }
+
+    public Call lcnVnfLcmOperationOccurrenceNotificationPostCall(
+            final VnfLcmOperationOccurrenceNotification vnfLcmOperationOccurrenceNotification,
+            final String contentType, final String authorization,
+            final ProgressResponseBody.ProgressListener progressListener,
+            final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        return lcnVnfObjectNotificationPostCall(vnfLcmOperationOccurrenceNotification,
+                contentType, authorization, progressListener, progressRequestListener);
+    }
+
+    private Call lcnVnfObjectNotificationPostCall(
+            final Object body, final String contentType, final String authorization,
+            final ProgressResponseBody.ProgressListener progressListener,
+            final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        final List<Pair> localVarQueryParams = new ArrayList<>();
+        final List<Pair> localVarCollectionQueryParams = new ArrayList<>();
+        final Map<String, String> localVarHeaderParams = new HashMap<>();
+
+        if (authorization != null) {
+            localVarHeaderParams.put("Authorization", getApiClient().parameterToString(authorization));
+        }
+
+        if (contentType != null) {
+            localVarHeaderParams.put("Content-Type", getApiClient().parameterToString(contentType));
+        }
+
+        final String[] localVarAccepts = new String[]{"application/json"};
+        final String localVarAccept = getApiClient().selectHeaderAccept(localVarAccepts);
+
+        if (localVarAccept != null) {
+            localVarHeaderParams.put("Accept", localVarAccept);
+        }
+
+        final String[] localVarContentTypes = new String[]{"application/json"};
+        final String localVarContentType = getApiClient().selectHeaderContentType(localVarContentTypes);
+        localVarHeaderParams.put("Content-Type", localVarContentType);
+
+        if (progressListener != null) {
+            getApiClient().getHttpClient().networkInterceptors().add(ch -> {
+                final Response originalResponse = ch.proceed(ch.request());
+                return originalResponse.newBuilder().body(new ProgressResponseBody(originalResponse.body(), progressListener)).build();
+            });
+        }
+
+        final Map<String, Object> localVarFormParams = new HashMap<>();
+        final String[] localVarAuthNames = new String[0];
+
+        return getApiClient().buildCall("", "POST", localVarQueryParams, localVarCollectionQueryParams, body, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener);
+    }
+}
index 487a931..ba54900 100644 (file)
@@ -44,10 +44,12 @@ import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsBasic;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsOauth2ClientCredentials;
+import org.onap.so.svnfm.simulator.api.VeVnfmApi;
 import org.onap.so.svnfm.simulator.model.Vnfds;
 import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
 import org.onap.so.svnfm.simulator.config.ApplicationConfig;
 import org.onap.so.svnfm.simulator.model.VnfOperation;
+import org.onap.so.svnfm.simulator.util.PatternContainedChecker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.core.io.ClassPathResource;
@@ -82,11 +84,12 @@ public abstract class OperationProgressor implements Runnable {
 
         final ApiClient apiClient = new ApiClient();
         String callBackUrl = subscriptionService.getSubscriptions().iterator().next().getCallbackUri();
-        callBackUrl = callBackUrl.substring(0, callBackUrl.indexOf("/lcn/"));
+        final PatternContainedChecker checker = new PatternContainedChecker("/lcn/", callBackUrl);
+        callBackUrl = checker.getText();
         apiClient.setBasePath(callBackUrl);
         apiClient.setKeyManagers(getKeyManagers());
         apiClient.setSslCaCert(getCertificateToTrust());
-        notificationClient = new DefaultApi(apiClient);
+        notificationClient = checker.isContained() ? new DefaultApi(apiClient) : new VeVnfmApi(apiClient);
 
         final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient grantApiClient =
                 new org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient();
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/util/PatternContainedChecker.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/util/PatternContainedChecker.java
new file mode 100644 (file)
index 0000000..d33026a
--- /dev/null
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Samsung. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.util;
+
+public class PatternContainedChecker {
+
+    private final boolean contained;
+    private final String text;
+
+    public PatternContainedChecker(final String pattern, final String text) {
+        this.contained = text.contains(pattern);
+        this.text = this.contained ? text.substring(0, text.indexOf(pattern)) : text;
+    }
+
+    public boolean isContained() {
+        return contained;
+    }
+
+    public String getText() {
+        return text;
+    }
+}