From 3646a22c4a6e4b5cee18b3e226bc0acda5a74f71 Mon Sep 17 00:00:00 2001
From: Piotr Borelowski
Date: Fri, 20 Dec 2019 15:35:24 +0100
Subject: Implement SOL002 specific changes to CSIT vnfm-simulator
Added sending Notification for SOL002
Issue-ID: INT-1404
Signed-off-by: Piotr Borelowski
Change-Id: I017c6e6ca03f9d898798e5c8876795ea44f88a55
---
.../org/onap/so/svnfm/simulator/api/VeVnfmApi.java | 86 ++++++++++++++++++++++
.../simulator/services/OperationProgressor.java | 7 +-
.../simulator/util/PatternContainedChecker.java | 38 ++++++++++
3 files changed, 129 insertions(+), 2 deletions(-)
create mode 100644 plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/api/VeVnfmApi.java
create mode 100644 plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/util/PatternContainedChecker.java
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
index 00000000..14ee2fd3
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/api/VeVnfmApi.java
@@ -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 localVarQueryParams = new ArrayList<>();
+ final List localVarCollectionQueryParams = new ArrayList<>();
+ final Map 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 localVarFormParams = new HashMap<>();
+ final String[] localVarAuthNames = new String[0];
+
+ return getApiClient().buildCall("", "POST", localVarQueryParams, localVarCollectionQueryParams, body, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener);
+ }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java
index 487a931c..ba549009 100644
--- a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java
@@ -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
index 00000000..d33026ab
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/util/PatternContainedChecker.java
@@ -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;
+ }
+}
--
cgit 1.2.3-korg