summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-adapter-application/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-adapter-common/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-api/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-ext-clients/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-lcm/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-api/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-ext-clients/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/etsi-sol003-pkgm/pom.xml2
-rw-r--r--adapters/etsi-sol003-adapter/pom.xml2
-rw-r--r--adapters/mso-adapter-utils/pom.xml2
-rw-r--r--adapters/mso-adapters-rest-interface/pom.xml2
-rw-r--r--adapters/mso-catalog-db-adapter/pom.xml2
-rw-r--r--adapters/mso-nssmf-adapter/pom.xml2
-rw-r--r--adapters/mso-openstack-adapters/pom.xml2
-rw-r--r--adapters/mso-requests-db-adapter/pom.xml2
-rw-r--r--adapters/mso-sdnc-adapter/pom.xml2
-rw-r--r--adapters/mso-vfc-adapter/pom.xml2
-rw-r--r--adapters/pom.xml2
-rw-r--r--adapters/so-appc-orchestrator/pom.xml2
-rw-r--r--asdc-controller/pom.xml2
-rw-r--r--bpmn/MSOCommonBPMN/pom.xml2
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/CDSPropertiesImpl.java10
-rw-r--r--bpmn/MSOCoreBPMN/pom.xml2
-rw-r--r--bpmn/mso-infrastructure-bpmn/pom.xml2
-rw-r--r--bpmn/pom.xml2
-rw-r--r--bpmn/so-bpmn-building-blocks/pom.xml2
-rw-r--r--bpmn/so-bpmn-infrastructure-common/pom.xml2
-rw-r--r--bpmn/so-bpmn-infrastructure-flows/pom.xml2
-rw-r--r--bpmn/so-bpmn-tasks/pom.xml2
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java2
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/SdncInputParametersProvider.java69
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/UserParamInputParametersProvider.java4
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/VnfParameter.java21
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/AbstractServiceLevelPreparable.java81
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/impl/ServiceLevelPreparation.java77
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java181
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListener.java5
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIPnfResources.java35
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/service/level/ServiceLevelPreparationTest.java130
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListenerTest.java59
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIPnfResourcesTest.java69
-rw-r--r--cloudify-client/pom.xml2
-rw-r--r--common/pom.xml6
-rw-r--r--common/src/main/java/org/onap/so/client/KeyStoreLoader.java48
-rw-r--r--common/src/main/java/org/onap/so/client/RestClientSSL.java27
-rw-r--r--common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java41
-rw-r--r--common/src/main/java/org/onap/so/client/cds/CDSProperties.java5
-rw-r--r--common/src/test/java/org/onap/so/client/cds/CDSProcessingClientTest.java3
-rw-r--r--common/src/test/java/org/onap/so/client/cds/TestCDSPropertiesImpl.java10
-rw-r--r--cxf-logging/pom.xml2
-rw-r--r--deployment-configs/pom.xml2
-rw-r--r--docs/developer_info/Working_with_so_monitoring.rst70
-rw-r--r--docs/developer_info/developer_information.rst1
-rw-r--r--docs/images/configmap.pngbin0 -> 440254 bytes
-rw-r--r--docs/images/nodemap.pngbin0 -> 48567 bytes
-rw-r--r--docs/images/nodeport.pngbin0 -> 122080 bytes
-rw-r--r--docs/images/ui.pngbin0 -> 47873 bytes
-rw-r--r--docs/release-notes.rst75
-rw-r--r--graph-inventory/aai-client/pom.xml2
-rw-r--r--graph-inventory/fluent-builder-maven-plugin/pom.xml2
-rw-r--r--graph-inventory/pom.xml2
-rw-r--r--mso-api-handlers/mso-api-handler-common/pom.xml2
-rw-r--r--mso-api-handlers/mso-api-handler-infra/pom.xml2
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/BpmnRequestBuilder.java3
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java5
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java5
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java5
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java5
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java5
-rw-r--r--mso-api-handlers/mso-requests-db-repositories/pom.xml2
-rw-r--r--mso-api-handlers/mso-requests-db/pom.xml2
-rw-r--r--mso-api-handlers/pom.xml2
-rw-r--r--mso-catalog-db/pom.xml2
-rw-r--r--packages/docker/pom.xml7
-rw-r--r--packages/pom.xml2
-rw-r--r--pom.xml9
-rw-r--r--so-monitoring/pom.xml2
-rw-r--r--so-monitoring/so-monitoring-handler/pom.xml2
-rw-r--r--so-monitoring/so-monitoring-service/pom.xml2
-rw-r--r--so-monitoring/so-monitoring-ui/pom.xml2
-rw-r--r--so-optimization-clients/pom.xml2
-rw-r--r--so-sdn-clients/pom.xml8
-rw-r--r--so-simulator/pom.xml2
-rw-r--r--version.properties2
86 files changed, 934 insertions, 247 deletions
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-adapter-application/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-adapter-application/pom.xml
index f1f8bb5a70..e8b1fd08e6 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-adapter-application/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-adapter-application/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-adapter</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-adapter-application</artifactId>
<name>ETSI SOL003 Application Jar</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-adapter-common/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-adapter-common/pom.xml
index 9c88f6a546..391a5c622d 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-adapter-common/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-adapter-common/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-adapter</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-adapter-common</artifactId>
<name>ETSI SOL003 Adapter Common</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/pom.xml
index a64dbc6eed..8359fd3829 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-lcm</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-lcm-adapter</artifactId>
<name>ETSI SOL003 Life Cycle Management Adapter</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-api/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-api/pom.xml
index f6789575c6..01ba94ddd4 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-api/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-lcm</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-lcm-api</artifactId>
<name>ETSI SOL003 Life Cycle Management Adapter API</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-ext-clients/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-ext-clients/pom.xml
index 5452b578a7..14e8a600b5 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-ext-clients/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-ext-clients/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-lcm</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-lcm-ext-clients</artifactId>
<name>ETSI SOL003 Life Cycle Management Adapter Ext Clients</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/pom.xml
index e3f87680d8..5bcc43f2bd 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-adapter</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-lcm</artifactId>
<name>ETSI SOL003 Life Cycle Management</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/pom.xml
index 250ac504c7..fd4dc0d972 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-pkgm</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-pkgm-adapter</artifactId>
<name>ETSI SOL003 VNF Package Management Adapter</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-api/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-api/pom.xml
index 884419c550..8d79aff29d 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-api/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-pkgm</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-pkgm-api</artifactId>
<name>ETSI SOL003 VNF Package Management Adapter API</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-ext-clients/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-ext-clients/pom.xml
index 6e6de84b5f..f34fb61802 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-ext-clients/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/etsi-sol003-pkgm-ext-clients/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-pkgm</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-pkgm-ext-clients</artifactId>
<name>ETSI SOL003 VNF Package Management Adapter Ext Clients</name>
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/pom.xml b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/pom.xml
index fb5b636ee4..37f9e2efee 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/pom.xml
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-pkgm/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-adapter</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>etsi-sol003-pkgm</artifactId>
<name>ETSI SOL003 VNF Package Management</name>
diff --git a/adapters/etsi-sol003-adapter/pom.xml b/adapters/etsi-sol003-adapter/pom.xml
index 9ea25a5eb7..ceaaab42d0 100644
--- a/adapters/etsi-sol003-adapter/pom.xml
+++ b/adapters/etsi-sol003-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>etsi-sol003-adapter</artifactId>
diff --git a/adapters/mso-adapter-utils/pom.xml b/adapters/mso-adapter-utils/pom.xml
index 0168d2bde5..6346983f96 100644
--- a/adapters/mso-adapter-utils/pom.xml
+++ b/adapters/mso-adapter-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>mso-adapter-utils</artifactId>
diff --git a/adapters/mso-adapters-rest-interface/pom.xml b/adapters/mso-adapters-rest-interface/pom.xml
index 3b762413ae..9e86f41af3 100644
--- a/adapters/mso-adapters-rest-interface/pom.xml
+++ b/adapters/mso-adapters-rest-interface/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>mso-adapters-rest-interface</artifactId>
diff --git a/adapters/mso-catalog-db-adapter/pom.xml b/adapters/mso-catalog-db-adapter/pom.xml
index bfb600f3ba..9b51e35c57 100644
--- a/adapters/mso-catalog-db-adapter/pom.xml
+++ b/adapters/mso-catalog-db-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
diff --git a/adapters/mso-nssmf-adapter/pom.xml b/adapters/mso-nssmf-adapter/pom.xml
index b257adaa96..db791826c3 100644
--- a/adapters/mso-nssmf-adapter/pom.xml
+++ b/adapters/mso-nssmf-adapter/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>mso-nssmf-adapter</artifactId>
diff --git a/adapters/mso-openstack-adapters/pom.xml b/adapters/mso-openstack-adapters/pom.xml
index d78178f5ba..ad41b0f050 100644
--- a/adapters/mso-openstack-adapters/pom.xml
+++ b/adapters/mso-openstack-adapters/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>mso-openstack-adapters</artifactId>
<packaging>jar</packaging>
diff --git a/adapters/mso-requests-db-adapter/pom.xml b/adapters/mso-requests-db-adapter/pom.xml
index 55e59d134e..ca13895848 100644
--- a/adapters/mso-requests-db-adapter/pom.xml
+++ b/adapters/mso-requests-db-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
diff --git a/adapters/mso-sdnc-adapter/pom.xml b/adapters/mso-sdnc-adapter/pom.xml
index 8bc9501fbd..808210389a 100644
--- a/adapters/mso-sdnc-adapter/pom.xml
+++ b/adapters/mso-sdnc-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>mso-sdnc-adapter</artifactId>
<properties>
diff --git a/adapters/mso-vfc-adapter/pom.xml b/adapters/mso-vfc-adapter/pom.xml
index 451831f966..a86dc94cf2 100644
--- a/adapters/mso-vfc-adapter/pom.xml
+++ b/adapters/mso-vfc-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
<artifactId>mso-vfc-adapter</artifactId>
diff --git a/adapters/pom.xml b/adapters/pom.xml
index 56d4328577..05d8b38dac 100644
--- a/adapters/pom.xml
+++ b/adapters/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>adapters</artifactId>
diff --git a/adapters/so-appc-orchestrator/pom.xml b/adapters/so-appc-orchestrator/pom.xml
index 4d1a471ee8..2229c1a60b 100644
--- a/adapters/so-appc-orchestrator/pom.xml
+++ b/adapters/so-appc-orchestrator/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.adapters</groupId>
diff --git a/asdc-controller/pom.xml b/asdc-controller/pom.xml
index 2a08f83387..1bd0389cba 100644
--- a/asdc-controller/pom.xml
+++ b/asdc-controller/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so</groupId>
diff --git a/bpmn/MSOCommonBPMN/pom.xml b/bpmn/MSOCommonBPMN/pom.xml
index 0c61cc3012..c1c5bf0170 100644
--- a/bpmn/MSOCommonBPMN/pom.xml
+++ b/bpmn/MSOCommonBPMN/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>bpmn</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>MSOCommonBPMN</artifactId>
<name>MSOCommonBPMN</name>
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/CDSPropertiesImpl.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/CDSPropertiesImpl.java
index 64c45653e1..2efd74ddc5 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/CDSPropertiesImpl.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/CDSPropertiesImpl.java
@@ -80,4 +80,14 @@ public class CDSPropertiesImpl implements CDSProperties {
public int getTimeout() {
return Integer.parseInt(Objects.requireNonNull(UrnPropertiesReader.getVariable(TIMEOUT)));
}
+
+ @Override
+ public boolean getUseSSL() {
+ return false;
+ }
+
+ @Override
+ public boolean getUseBasicAuth() {
+ return true;
+ }
}
diff --git a/bpmn/MSOCoreBPMN/pom.xml b/bpmn/MSOCoreBPMN/pom.xml
index 6acdb5ddba..5285e4e79f 100644
--- a/bpmn/MSOCoreBPMN/pom.xml
+++ b/bpmn/MSOCoreBPMN/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>bpmn</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>MSOCoreBPMN</artifactId>
diff --git a/bpmn/mso-infrastructure-bpmn/pom.xml b/bpmn/mso-infrastructure-bpmn/pom.xml
index 9c9a7f9257..b621853f2b 100644
--- a/bpmn/mso-infrastructure-bpmn/pom.xml
+++ b/bpmn/mso-infrastructure-bpmn/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>bpmn</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mso-infrastructure-bpmn</artifactId>
diff --git a/bpmn/pom.xml b/bpmn/pom.xml
index 35adeec4c9..4193ba1287 100644
--- a/bpmn/pom.xml
+++ b/bpmn/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>bpmn</artifactId>
diff --git a/bpmn/so-bpmn-building-blocks/pom.xml b/bpmn/so-bpmn-building-blocks/pom.xml
index 52c5502b32..5c4cd6d2fa 100644
--- a/bpmn/so-bpmn-building-blocks/pom.xml
+++ b/bpmn/so-bpmn-building-blocks/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>bpmn</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>so-bpmn-building-blocks</artifactId>
diff --git a/bpmn/so-bpmn-infrastructure-common/pom.xml b/bpmn/so-bpmn-infrastructure-common/pom.xml
index 075f6f8fdd..28e3ffe8c3 100644
--- a/bpmn/so-bpmn-infrastructure-common/pom.xml
+++ b/bpmn/so-bpmn-infrastructure-common/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>bpmn</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>so-bpmn-infrastructure-common</artifactId>
diff --git a/bpmn/so-bpmn-infrastructure-flows/pom.xml b/bpmn/so-bpmn-infrastructure-flows/pom.xml
index 29f1c33914..e6eb284199 100644
--- a/bpmn/so-bpmn-infrastructure-flows/pom.xml
+++ b/bpmn/so-bpmn-infrastructure-flows/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>bpmn</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>so-bpmn-infrastructure-flows</artifactId>
diff --git a/bpmn/so-bpmn-tasks/pom.xml b/bpmn/so-bpmn-tasks/pom.xml
index d1245ce92a..f7eb2c09c7 100644
--- a/bpmn/so-bpmn-tasks/pom.xml
+++ b/bpmn/so-bpmn-tasks/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>bpmn</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>so-bpmn-tasks</artifactId>
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java
index e3181c3e91..55edf0bb6c 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java
@@ -260,7 +260,7 @@ public class AAICreateTasks {
public void createPnf(BuildingBlockExecution execution) {
try {
Pnf pnf = extractPojosForBB.extractByKey(execution, ResourceKey.PNF);
- aaiPnfResources.checkIfPnfExistsInAaiAndCanBeUsed(pnf.getPnfName());
+ aaiPnfResources.checkIfPnfExistsInAaiAndCanBeUsed(pnf);
ServiceInstance serviceInstance =
extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID);
aaiPnfResources.createPnfAndConnectServiceInstance(pnf, serviceInstance);
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/SdncInputParametersProvider.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/SdncInputParametersProvider.java
index 6831a656a8..92ed61df67 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/SdncInputParametersProvider.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/SdncInputParametersProvider.java
@@ -50,11 +50,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
public class SdncInputParametersProvider extends AbstractInputParametersProvider<GenericVnf> {
private static final Logger LOGGER = LoggerFactory.getLogger(SdncInputParametersProvider.class);
-
private static final String VNF_PARAMETERS_PATH = "$..vnf-parameters";
-
private final SDNCClient sdncClient;
-
private final ObjectMapper mapper;
@Autowired
@@ -68,34 +65,12 @@ public class SdncInputParametersProvider extends AbstractInputParametersProvider
final String vnfName = genericVnf.getVnfName();
final String vnfType = getVnfType(genericVnf);
final String url = getPreloadVnfsUrl(vnfName, vnfType);
+ final InputParameter inputParameter = parseInputParametersUsingUrl(url);
- try {
- LOGGER.debug("Will query sdnc for input parameters using url: {}", url);
- final String jsonResponse = sdncClient.get(url);
- 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);
- }
+ if (inputParameter != null)
+ return inputParameter;
LOGGER.warn("No input parameters found ...");
return NullInputParameter.NULL_INSTANCE;
-
}
private List<ExternalVirtualLink> getExtVirtualLinks(final Map<String, String> vnfParametersMap) {
@@ -109,19 +84,18 @@ public class SdncInputParametersProvider extends AbstractInputParametersProvider
private Map<String, String> getAdditionalParameters(final Map<String, String> vnfParametersMap) {
final String additionalParamsString = vnfParametersMap.get(ADDITIONAL_PARAMS);
+
if (additionalParamsString != null && !additionalParamsString.isEmpty()) {
return parseAdditionalParameters(additionalParamsString);
}
return Collections.emptyMap();
}
-
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();
}
@@ -131,10 +105,43 @@ public class SdncInputParametersProvider extends AbstractInputParametersProvider
private String getVnfType(final GenericVnf genericVnf) {
final ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
- if (modelInfoGenericVnf != null && modelInfoGenericVnf.getModelName() != null) {
+ if (modelInfoGenericVnf != null) {
return modelInfoGenericVnf.getModelName();
}
return genericVnf.getVnfType();
}
+ private InputParameter parseInputParametersUsingUrl(String url) {
+ try {
+ LOGGER.debug("Will query sdnc for input parameters using url: {}", url);
+ final String jsonResponse = sdncClient.get(url);
+ final String json = JsonPathUtil.getInstance().locateResult(jsonResponse, VNF_PARAMETERS_PATH).orElse(null);
+ final InputParameter inputParameter = parseVnfParameters(json);
+
+ if (inputParameter != null)
+ return inputParameter;
+ } catch (final Exception exception) {
+ LOGGER.error("Unable to retrieve/parse input parameters using URL: {} ", url, exception);
+ }
+ return null;
+ }
+
+ private InputParameter parseVnfParameters(String json) {
+ 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);
+ }
+ return null;
+ }
}
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/UserParamInputParametersProvider.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/UserParamInputParametersProvider.java
index ac939d04ec..bdd738b031 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/UserParamInputParametersProvider.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/UserParamInputParametersProvider.java
@@ -40,12 +40,12 @@ public class UserParamInputParametersProvider extends AbstractInputParametersPro
final InputParameter inputParameter = new InputParameter();
final Object additionalParams = userParams.get(ADDITIONAL_PARAMS);
- if (additionalParams != null && additionalParams instanceof String) {
+ if (additionalParams instanceof String) {
inputParameter.setAdditionalParams(parseAdditionalParameters(additionalParams.toString()));
}
final Object extVirtualLinks = userParams.get(EXT_VIRTUAL_LINKS);
- if (extVirtualLinks != null && extVirtualLinks instanceof String) {
+ if (extVirtualLinks instanceof String) {
inputParameter.setExtVirtualLinks(parseExternalVirtualLinks(extVirtualLinks.toString()));
}
LOGGER.info("InputParameter found in userParams : {}", inputParameter);
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/VnfParameter.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/VnfParameter.java
index 0d45dad6fe..2491c99bc4 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/VnfParameter.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/utils/VnfParameter.java
@@ -35,30 +35,18 @@ public class VnfParameter {
@JsonProperty("vnf-parameter-value")
private String value;
- /**
- * @return the name
- */
public String getName() {
return name;
}
- /**
- * @param name the name to set
- */
public void setName(final String name) {
this.name = name;
}
- /**
- * @return the value
- */
public String getValue() {
return value;
}
- /**
- * @param value the value to set
- */
public void setValue(final String value) {
this.value = value;
}
@@ -66,10 +54,9 @@ public class VnfParameter {
@Override
public int hashCode() {
final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((value == null) ? 0 : value.hashCode());
- return Objects.hash(name, value);
+ int nameResult = prime + ((name == null) ? 0 : name.hashCode());
+ int valueResult = prime + ((value == null) ? 0 : value.hashCode());
+ return Objects.hash(nameResult, valueResult);
}
@Override
@@ -78,7 +65,6 @@ public class VnfParameter {
VnfParameter other = (VnfParameter) obj;
return Objects.equals(name, other.name) && Objects.equals(value, other.value);
}
-
return false;
}
@@ -86,5 +72,4 @@ public class VnfParameter {
public String toString() {
return "VnfParameter [name=" + name + ", value=" + value + "]";
}
-
}
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/AbstractServiceLevelPreparable.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/AbstractServiceLevelPreparable.java
new file mode 100644
index 0000000000..36db549486
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/AbstractServiceLevelPreparable.java
@@ -0,0 +1,81 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 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.bpmn.infrastructure.service.level;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.onap.so.client.exception.ExceptionBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Abstract class for Service level upgrade Execution, it should be extended for service level upgrade tasks.
+ */
+public abstract class AbstractServiceLevelPreparable {
+
+ protected static final String WORKFLOW_TO_INVOKE = "healthCheckWorkflow";
+ protected static final String GENERIC_PNF_HEALTH_CHECK_WORKFLOW = "GenericPnfHealthCheck";
+ protected static final String GENERIC_PNF_SOFTWARE_UPGRADE_WORKFLOW = "GenericPnfSoftwareUpgrade";
+ protected static final String RESOURCE_TYPE = "RESOURCE_TYPE";
+ protected static final int ERROR_CODE = 601;
+
+ // TODO This value needs to be updated once vnf health check workflow is available
+ protected static final String GENERIC_VNF_HEALTH_CHECK_WORKFLOW = "GenericVNFHealthCheck";
+
+ protected static final Logger LOG = LoggerFactory.getLogger(AbstractServiceLevelPreparable.class);
+
+ @Autowired
+ protected ExceptionBuilder exceptionBuilder;
+
+ /**
+ * This method fetches workflow names to be invoked based on the controller scope .
+ *
+ * @param scope Controller scope
+ * @return String value of Workflow name
+ */
+ protected abstract String fetchWorkflowUsingScope(DelegateExecution execution, final String scope);
+
+ /**
+ * This method validates the execution parameters to be passed for health check workflow.
+ *
+ * @param execution Delegate execution obj
+ * @param scope Controller scope * Throws workflow exception if validation fails
+ */
+ protected void validateParamsWithScope(DelegateExecution execution, final String scope, List<String> params)
+ throws Exception {
+ List<String> invalidVariables = new ArrayList<>();
+ for (String param : params) {
+ if (!execution.hasVariable(param) || execution.getVariable(param) == null
+ || String.valueOf(execution.getVariable(param)).isEmpty()) {
+ invalidVariables.add(param);
+ }
+ }
+ if (invalidVariables.size() > 0) {
+ LOG.error("Validation error for the {} health check attributes: {}", scope, invalidVariables);
+ exceptionBuilder.buildAndThrowWorkflowException(execution, ERROR_CODE,
+ "Validation of health check workflow parameters failed for the scope: " + scope);
+ }
+
+ }
+
+}
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/impl/ServiceLevelPreparation.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/impl/ServiceLevelPreparation.java
new file mode 100644
index 0000000000..52521ce16b
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/level/impl/ServiceLevelPreparation.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 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.bpmn.infrastructure.service.level.impl;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.onap.so.bpmn.infrastructure.service.level.AbstractServiceLevelPreparable;
+import org.springframework.stereotype.Component;
+import java.util.Arrays;
+import java.util.List;
+
+
+/**
+ * Fetches health check workflow based on the controller_scope. Invoke the corresponding health check workflow after
+ * validation.
+ */
+@Component("ServiceLevelPreparation")
+public class ServiceLevelPreparation extends AbstractServiceLevelPreparable implements JavaDelegate {
+
+ // Health check parameters to be validated for pnf resource
+ private static final List<String> PNF_HC_PARAMS = Arrays.asList("SERVICE_MODEL_INFO", "SERVICE_INSTANCE_NAME",
+ "PNF_CORRELATION_ID", "MODEL_UUID", "PNF_UUID", "PRC_BLUEPRINT_NAME", "PRC_BLUEPRINT_VERSION",
+ "PRC_CUSTOMIZATION_UUID", "RESOURCE_CUSTOMIZATION_UUID_PARAM", "PRC_INSTANCE_NAME", "PRC_CONTROLLER_ACTOR",
+ "REQUEST_PAYLOAD");
+
+ @Override
+ public void execute(DelegateExecution execution) throws Exception {
+ if (execution.hasVariable(RESOURCE_TYPE) && execution.getVariable(RESOURCE_TYPE) != null) {
+ final String controllerScope = (String) execution.getVariable(RESOURCE_TYPE);
+ LOG.debug("Scope retrieved from delegate execution: " + controllerScope);
+ final String wflName = fetchWorkflowUsingScope(execution, controllerScope);
+ LOG.debug("Health check workflow fetched for the scope: {}", wflName);
+ validateParamsWithScope(execution, controllerScope, PNF_HC_PARAMS);
+ LOG.info("Parameters validated successfully for {}", wflName);
+ execution.setVariable(WORKFLOW_TO_INVOKE, wflName);
+ } else {
+ exceptionBuilder.buildAndThrowWorkflowException(execution, ERROR_CODE,
+ "Controller scope not found to invoke resource level health check");
+ }
+ }
+
+ @Override
+ public String fetchWorkflowUsingScope(DelegateExecution execution, final String scope) {
+ String wflName = null;
+ switch (scope.toLowerCase()) {
+ case "pnf":
+ wflName = GENERIC_PNF_HEALTH_CHECK_WORKFLOW;
+ break;
+ case "vnf":
+ wflName = GENERIC_VNF_HEALTH_CHECK_WORKFLOW;
+ break;
+ default:
+ exceptionBuilder.buildAndThrowWorkflowException(execution, ERROR_CODE,
+ "No valid health check work flow retrieved for the scope: " + scope);
+ }
+ return wflName;
+ }
+
+}
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
index 985114abcd..9781f78789 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
@@ -146,6 +146,7 @@ public class WorkflowAction {
private static final String VOLUMEGROUP_CREATE_PATTERN = "(A|C)(.*)Volume(.*)";
private static final String CONTROLLER = "Controller";
private static final String DEFAULT_CLOUD_OWNER = "org.onap.so.cloud-owner";
+ private static final String HOMING = "homing";
@Autowired
protected BBInputSetup bbInputSetup;
@@ -198,16 +199,12 @@ public class WorkflowAction {
List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
if (isRequestMacroServiceResume(isALaCarte, resourceType, requestAction, serviceInstanceId)) {
- flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
- if (flowsToExecute == null) {
- buildAndThrowException(execution, "Could not resume Macro flow. Error loading execution path.");
- }
+ String errorMessage = "Could not resume Macro flow. Error loading execution path.";
+ flowsToExecute = loadExecuteBuildingBlocks(execution, requestId, errorMessage);
} else if (isALaCarte && isResume) {
- flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
- if (flowsToExecute == null) {
- buildAndThrowException(execution,
- "Could not resume request with request Id: " + requestId + ". No flowsToExecute was found");
- }
+ String errorMessage =
+ "Could not resume request with request Id: " + requestId + ". No flowsToExecute was found";
+ flowsToExecute = loadExecuteBuildingBlocks(execution, requestId, errorMessage);
} else {
String vnfType = (String) execution.getVariable(VNF_TYPE);
String cloudOwner = getCloudOwner(requestDetails.getCloudConfiguration());
@@ -228,44 +225,19 @@ public class WorkflowAction {
|| requestAction.equalsIgnoreCase(REPLACEINSTANCERETAINASSIGNMENTS))
&& resourceType.equals(WorkflowType.VFMODULE)) {
logger.debug("Build a BB list for replacing BB modules");
- orchFlows = getVfModuleReplaceBuildingBlocks(new ConfigBuildingBlocksDataObject()
- .setsIRequest(sIRequest).setOrchFlows(orchFlows).setRequestId(requestId)
- .setResourceKey(resourceKey).setApiVersion(apiVersion).setResourceId(resourceId)
- .setRequestAction(requestAction).setaLaCarte(true).setVnfType(vnfType)
- .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails)
- .setExecution(execution).setReplaceInformation(replaceInfo));
- for (OrchestrationFlow orchFlow : orchFlows) {
- if (orchFlow.getFlowName().contains(CONFIGURATION)) {
- List<OrchestrationFlow> configOrchFlows = new ArrayList<>();
- configOrchFlows.add(orchFlow);
- List<ExecuteBuildingBlock> configBuildingBlocks =
- getConfigBuildingBlocks(new ConfigBuildingBlocksDataObject()
- .setsIRequest(sIRequest).setOrchFlows(configOrchFlows)
- .setRequestId(requestId).setResourceKey(resourceKey)
- .setApiVersion(apiVersion).setResourceId(resourceId)
- .setRequestAction(requestAction).setaLaCarte(true).setVnfType(vnfType)
- .setWorkflowResourceIds(workflowResourceIds)
- .setRequestDetails(requestDetails).setExecution(execution)
- .setReplaceInformation(replaceInfo));
- flowsToExecute.addAll(configBuildingBlocks);
- } else {
- ExecuteBuildingBlock ebb = buildExecuteBuildingBlock(orchFlow, requestId, resourceKey,
- apiVersion, resourceId, requestAction, true, vnfType, workflowResourceIds,
- requestDetails, false, null, null, false, replaceInfo);
- flowsToExecute.add(ebb);
- }
- }
+ ConfigBuildingBlocksDataObject cbbdo = createConfigBuildingBlocksDataObject(execution,
+ sIRequest, requestId, workflowResourceIds, requestDetails, requestAction, resourceId,
+ vnfType, orchFlows, apiVersion, resourceKey, replaceInfo);
+ orchFlows = getVfModuleReplaceBuildingBlocks(cbbdo);
+
+ createBuildingBlocksForOrchFlows(execution, sIRequest, requestId, workflowResourceIds,
+ requestDetails, requestAction, resourceId, flowsToExecute, vnfType, orchFlows,
+ apiVersion, resourceKey, replaceInfo);
} else {
if (isConfiguration(orchFlows) && !requestAction.equalsIgnoreCase(CREATEINSTANCE)) {
- List<ExecuteBuildingBlock> configBuildingBlocks =
- getConfigBuildingBlocks(new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest)
- .setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey)
- .setApiVersion(apiVersion).setResourceId(resourceId)
- .setRequestAction(requestAction).setaLaCarte(true).setVnfType(vnfType)
- .setWorkflowResourceIds(workflowResourceIds)
- .setRequestDetails(requestDetails).setExecution(execution));
-
- flowsToExecute.addAll(configBuildingBlocks);
+ addConfigBuildingBlocksToFlowsToExecuteList(execution, sIRequest, requestId,
+ workflowResourceIds, requestDetails, requestAction, resourceId, flowsToExecute,
+ vnfType, apiVersion, resourceKey, replaceInfo, orchFlows);
}
orchFlows =
orchFlows.stream().filter(item -> !item.getFlowName().contains(FABRIC_CONFIGURATION))
@@ -287,10 +259,7 @@ public class WorkflowAction {
// SERVICE-MACRO-ASSIGN will always get user params with a
// service.
if (sIRequest.getRequestDetails().getRequestParameters().getUserParams() != null) {
- List<Map<String, Object>> userParams =
- sIRequest.getRequestDetails().getRequestParameters().getUserParams();
- containsService =
- userParams.stream().anyMatch(param -> param.containsKey(USERPARAMSERVICE));
+ containsService = isContainsService(sIRequest);
if (containsService) {
traverseUserParamsService(execution, resourceList, sIRequest, requestAction);
}
@@ -306,10 +275,7 @@ public class WorkflowAction {
// queries the SI and finds a VNF, macro fails.
if (sIRequest.getRequestDetails().getRequestParameters().getUserParams() != null) {
- List<Map<String, Object>> userParams =
- sIRequest.getRequestDetails().getRequestParameters().getUserParams();
- containsService =
- userParams.stream().anyMatch(param -> param.containsKey(USERPARAMSERVICE));
+ containsService = isContainsService(sIRequest);
}
if (containsService) {
foundRelated = traverseUserParamsService(execution, resourceList, sIRequest, requestAction);
@@ -330,7 +296,7 @@ public class WorkflowAction {
} else if (resourceType == WorkflowType.SERVICE
&& "deactivateInstance".equalsIgnoreCase(requestAction)) {
resourceList.add(new Resource(WorkflowType.SERVICE, "", false));
- } else if (resourceType == WorkflowType.VNF && ("replaceInstance".equalsIgnoreCase(requestAction)
+ } else if (resourceType == WorkflowType.VNF && (REPLACEINSTANCE.equalsIgnoreCase(requestAction)
|| ("recreateInstance".equalsIgnoreCase(requestAction)))) {
traverseAAIVnf(execution, resourceList, workflowResourceIds.getServiceInstanceId(),
workflowResourceIds.getVnfId(), aaiResourceIds);
@@ -343,15 +309,15 @@ public class WorkflowAction {
(int) resourceList.stream().filter(x -> type.equals(x.getResourceType())).count())
.append(" ");
}
- logger.info("Found {}", foundObjects.toString());
+ logger.info("Found {}", foundObjects);
if (orchFlows == null || orchFlows.isEmpty()) {
orchFlows = queryNorthBoundRequestCatalogDb(execution, requestAction, resourceType, isALaCarte,
cloudOwner, serviceType);
}
boolean vnfReplace = false;
- if (resourceType.equals(WorkflowType.VNF) && ("replaceInstance".equalsIgnoreCase(requestAction)
- || "replaceInstanceRetainAssignments".equalsIgnoreCase(requestAction))) {
+ if (resourceType.equals(WorkflowType.VNF) && (REPLACEINSTANCE.equalsIgnoreCase(requestAction)
+ || REPLACEINSTANCERETAINASSIGNMENTS.equalsIgnoreCase(requestAction))) {
vnfReplace = true;
}
flowsToExecute = buildExecuteBuildingBlockList(orchFlows, resourceList, requestId, apiVersion,
@@ -364,7 +330,7 @@ public class WorkflowAction {
if (resourceType == WorkflowType.SERVICE
&& (requestAction.equals(CREATEINSTANCE) || requestAction.equals(ASSIGNINSTANCE))
&& resourceList.stream().anyMatch(x -> WorkflowType.VNF.equals(x.getResourceType()))) {
- execution.setVariable("homing", true);
+ execution.setVariable(HOMING, true);
execution.setVariable("calledHoming", false);
}
if (resourceType == WorkflowType.SERVICE && (requestAction.equalsIgnoreCase(ASSIGNINSTANCE)
@@ -380,11 +346,10 @@ public class WorkflowAction {
// enable it.
if (sIRequest.getRequestDetails().getRequestParameters() != null
&& sIRequest.getRequestDetails().getRequestParameters().getUserParams() != null) {
- List<Map<String, Object>> userParams =
- sIRequest.getRequestDetails().getRequestParameters().getUserParams();
+ List<Map<String, Object>> userParams = getListOfUserParams(sIRequest);
for (Map<String, Object> params : userParams) {
if (params.containsKey(HOMINGSOLUTION)) {
- execution.setVariable("homing", !"none".equals(params.get(HOMINGSOLUTION)));
+ execution.setVariable(HOMING, !"none".equals(params.get(HOMINGSOLUTION)));
}
}
}
@@ -404,12 +369,7 @@ public class WorkflowAction {
if (!isResume) {
bbInputSetupUtils.persistFlowExecutionPath(requestId, flowsToExecute);
}
- execution.setVariable("flowNames", flowNames);
- execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, 0);
- execution.setVariable("retryCount", 0);
- execution.setVariable("isRollback", false);
- execution.setVariable("flowsToExecute", flowsToExecute);
- execution.setVariable("isRollbackComplete", false);
+ setExecutionVariables(execution, flowsToExecute, flowNames);
} catch (Exception ex) {
if (!(execution.hasVariable("WorkflowException")
@@ -421,6 +381,85 @@ public class WorkflowAction {
}
}
+ private void setExecutionVariables(DelegateExecution execution, List<ExecuteBuildingBlock> flowsToExecute,
+ List<String> flowNames) {
+ execution.setVariable("flowNames", flowNames);
+ execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, 0);
+ execution.setVariable("retryCount", 0);
+ execution.setVariable("isRollback", false);
+ execution.setVariable("flowsToExecute", flowsToExecute);
+ execution.setVariable("isRollbackComplete", false);
+ }
+
+ private boolean isContainsService(ServiceInstancesRequest sIRequest) {
+ boolean containsService;
+ List<Map<String, Object>> userParams = getListOfUserParams(sIRequest);
+ containsService = userParams.stream().anyMatch(param -> param.containsKey(USERPARAMSERVICE));
+ return containsService;
+ }
+
+ private List<Map<String, Object>> getListOfUserParams(ServiceInstancesRequest sIRequest) {
+ return sIRequest.getRequestDetails().getRequestParameters().getUserParams();
+ }
+
+ private List<ExecuteBuildingBlock> loadExecuteBuildingBlocks(DelegateExecution execution, String requestId,
+ String errorMessage) {
+ List<ExecuteBuildingBlock> flowsToExecute;
+ flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
+ if (flowsToExecute == null) {
+ buildAndThrowException(execution, errorMessage);
+ }
+ return flowsToExecute;
+ }
+
+ private ConfigBuildingBlocksDataObject createConfigBuildingBlocksDataObject(DelegateExecution execution,
+ ServiceInstancesRequest sIRequest, String requestId, WorkflowResourceIds workflowResourceIds,
+ RequestDetails requestDetails, String requestAction, String resourceId, String vnfType,
+ List<OrchestrationFlow> orchFlows, String apiVersion, Resource resourceKey,
+ ReplaceInstanceRelatedInformation replaceInfo) {
+
+ return new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest).setOrchFlows(orchFlows)
+ .setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion).setResourceId(resourceId)
+ .setRequestAction(requestAction).setaLaCarte(true).setVnfType(vnfType)
+ .setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution)
+ .setReplaceInformation(replaceInfo);
+ }
+
+ private void createBuildingBlocksForOrchFlows(DelegateExecution execution, ServiceInstancesRequest sIRequest,
+ String requestId, WorkflowResourceIds workflowResourceIds, RequestDetails requestDetails,
+ String requestAction, String resourceId, List<ExecuteBuildingBlock> flowsToExecute, String vnfType,
+ List<OrchestrationFlow> orchFlows, String apiVersion, Resource resourceKey,
+ ReplaceInstanceRelatedInformation replaceInfo) throws Exception {
+
+ for (OrchestrationFlow orchFlow : orchFlows) {
+ if (orchFlow.getFlowName().contains(CONFIGURATION)) {
+ List<OrchestrationFlow> configOrchFlows = new ArrayList<>();
+ configOrchFlows.add(orchFlow);
+ addConfigBuildingBlocksToFlowsToExecuteList(execution, sIRequest, requestId, workflowResourceIds,
+ requestDetails, requestAction, resourceId, flowsToExecute, vnfType, apiVersion, resourceKey,
+ replaceInfo, configOrchFlows);
+ } else {
+ ExecuteBuildingBlock ebb = buildExecuteBuildingBlock(orchFlow, requestId, resourceKey, apiVersion,
+ resourceId, requestAction, true, vnfType, workflowResourceIds, requestDetails, false, null,
+ null, false, replaceInfo);
+ flowsToExecute.add(ebb);
+ }
+ }
+ }
+
+ private void addConfigBuildingBlocksToFlowsToExecuteList(DelegateExecution execution,
+ ServiceInstancesRequest sIRequest, String requestId, WorkflowResourceIds workflowResourceIds,
+ RequestDetails requestDetails, String requestAction, String resourceId,
+ List<ExecuteBuildingBlock> flowsToExecute, String vnfType, String apiVersion, Resource resourceKey,
+ ReplaceInstanceRelatedInformation replaceInfo, List<OrchestrationFlow> configOrchFlows) throws Exception {
+
+ ConfigBuildingBlocksDataObject cbbdo = createConfigBuildingBlocksDataObject(execution, sIRequest, requestId,
+ workflowResourceIds, requestDetails, requestAction, resourceId, vnfType, configOrchFlows, apiVersion,
+ resourceKey, replaceInfo);
+ List<ExecuteBuildingBlock> configBuildingBlocks = getConfigBuildingBlocks(cbbdo);
+ flowsToExecute.addAll(configBuildingBlocks);
+ }
+
private Resource getResourceKey(ServiceInstancesRequest sIRequest, WorkflowType resourceType) {
String resourceId = "";
ModelInfo modelInfo = sIRequest.getRequestDetails().getModelInfo();
@@ -847,7 +886,7 @@ public class WorkflowAction {
CollectionNetworkResourceCustomization collectionNetworkResourceCust =
getCollectionNetworkResourceCustomization(collectionResourceCustomization, instanceGroup);
for (int i = 0; i < minNetworks; i++) {
- if (collectionNetworkResourceCust != null && collectionInstCust != null) {
+ if (collectionNetworkResourceCust != null) {
Resource resource = new Resource(WorkflowType.VIRTUAL_LINK,
collectionNetworkResourceCust.getModelCustomizationUUID(), false);
resource.setVirtualLinkKey(Integer.toString(i));
@@ -1092,7 +1131,7 @@ public class WorkflowAction {
String vnfCustomizationUUID = "";
String vfModuleCustomizationUUID = "";
if (sIRequest.getRequestDetails().getRequestParameters().getUserParams() != null) {
- List<Map<String, Object>> userParams = sIRequest.getRequestDetails().getRequestParameters().getUserParams();
+ List<Map<String, Object>> userParams = getListOfUserParams(sIRequest);
for (Map<String, Object> params : userParams) {
if (params.containsKey(USERPARAMSERVICE)) {
ObjectMapper obj = new ObjectMapper();
@@ -1120,14 +1159,12 @@ public class WorkflowAction {
&& vfModuleCustomization.getVolumeHeatEnv() != null) {
resourceList.add(new Resource(WorkflowType.VOLUMEGROUP,
vfModuleCustomization.getModelCustomizationUUID(), false));
- foundRelated = true;
foundVfModuleOrVG = true;
}
if (vfModuleCustomization.getVfModule() != null
&& vfModuleCustomization.getVfModule().getModuleHeatTemplate() != null
&& vfModuleCustomization.getHeatEnvironment() != null) {
- foundRelated = true;
foundVfModuleOrVG = true;
Resource resource = new Resource(WorkflowType.VFMODULE,
vfModuleCustomization.getModelCustomizationUUID(), false);
@@ -1744,7 +1781,7 @@ public class WorkflowAction {
private void fillExecution(DelegateExecution execution, boolean suppressRollback, String resourceId,
WorkflowType resourceType) {
execution.setVariable("sentSyncResponse", false);
- execution.setVariable("homing", false);
+ execution.setVariable(HOMING, false);
execution.setVariable("calledHoming", false);
execution.setVariable(BBConstants.G_ISTOPLEVELFLOW, true);
execution.setVariable("suppressRollback", suppressRollback);
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListener.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListener.java
index 6254aae029..bc32489944 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListener.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListener.java
@@ -39,13 +39,12 @@ public class HomingListener implements FlowManipulator {
public void run(List<ExecuteBuildingBlock> flowsToExecute, ExecuteBuildingBlock currentBB,
BuildingBlockExecution execution) {
- boolean homing = (boolean) execution.getVariable("homing");
- boolean calledHoming = (boolean) execution.getVariable("calledHoming");
+ boolean homing = execution.getVariable("homing");
+ boolean calledHoming = execution.getVariable("calledHoming");
if (homing && !calledHoming) {
currentBB.setHoming(true);
execution.setVariable("calledHoming", true);
}
}
-
}
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIPnfResources.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIPnfResources.java
index 3b22cd9d81..3da17194ff 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIPnfResources.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIPnfResources.java
@@ -22,6 +22,7 @@ package org.onap.so.client.orchestration;
import com.google.common.base.Strings;
import java.util.Optional;
+import org.apache.commons.lang3.StringUtils;
import org.onap.aai.domain.yang.RelatedToProperty;
import org.onap.aai.domain.yang.Relationship;
import org.onap.aai.domain.yang.RelationshipData;
@@ -68,11 +69,39 @@ public class AAIPnfResources {
injectionHelper.getAaiClient().update(pnfURI, aaiObjectMapper.mapPnf(pnfCopy));
}
- public void checkIfPnfExistsInAaiAndCanBeUsed(String pnfName) throws Exception {
- Optional<org.onap.aai.domain.yang.Pnf> pnfFromAai = injectionHelper.getAaiClient()
- .get(org.onap.aai.domain.yang.Pnf.class, AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfName));
+ public void checkIfPnfExistsInAaiAndCanBeUsed(Pnf pnf) throws Exception {
+ Optional<org.onap.aai.domain.yang.Pnf> pnfFromAai =
+ injectionHelper.getAaiClient().get(org.onap.aai.domain.yang.Pnf.class,
+ AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnf.getPnfName()));
if (pnfFromAai.isPresent()) {
checkIfPnfCanBeUsed(pnfFromAai.get());
+ updatePnfInAAI(pnf, pnfFromAai.get());
+ }
+ }
+
+ private void updatePnfInAAI(Pnf pnf, org.onap.aai.domain.yang.Pnf pnfFromAai) {
+ updatePnfFields(pnf, pnfFromAai);
+ injectionHelper.getAaiClient().update(AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnf.getPnfName()),
+ pnfFromAai);
+ logger.debug("updatePnfInAAI: {}", pnfFromAai);
+ }
+
+ private void updatePnfFields(Pnf pnf, org.onap.aai.domain.yang.Pnf pnfFromAai) {
+ if (pnf.getModelInfoPnf() != null
+ && StringUtils.isNotBlank(pnf.getModelInfoPnf().getModelCustomizationUuid())) {
+ pnfFromAai.setModelCustomizationId(pnf.getModelInfoPnf().getModelCustomizationUuid());
+ }
+ if (pnf.getModelInfoPnf() != null && StringUtils.isNotBlank(pnf.getModelInfoPnf().getModelInvariantUuid())) {
+ pnfFromAai.setModelInvariantId(pnf.getModelInfoPnf().getModelInvariantUuid());
+ }
+ if (pnf.getModelInfoPnf() != null && StringUtils.isNotBlank(pnf.getModelInfoPnf().getModelUuid())) {
+ pnfFromAai.setModelVersionId(pnf.getModelInfoPnf().getModelUuid());
+ }
+ if (pnf.getOrchestrationStatus() != null && StringUtils.isNotBlank(pnf.getOrchestrationStatus().toString())) {
+ pnfFromAai.setOrchestrationStatus(pnf.getOrchestrationStatus().toString());
+ }
+ if (StringUtils.isNotBlank(pnf.getRole())) {
+ pnfFromAai.setNfRole(pnf.getRole());
}
}
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/service/level/ServiceLevelPreparationTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/service/level/ServiceLevelPreparationTest.java
new file mode 100644
index 0000000000..a99ee7d2df
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/service/level/ServiceLevelPreparationTest.java
@@ -0,0 +1,130 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 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.bpmn.infrastructure.service.level;
+
+import org.camunda.bpm.engine.delegate.BpmnError;
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.onap.so.bpmn.infrastructure.service.level.impl.ServiceLevelPreparation;
+import org.onap.so.client.exception.ExceptionBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.onap.so.bpmn.infrastructure.service.level.AbstractServiceLevelPreparable.RESOURCE_TYPE;
+import static org.onap.so.bpmn.infrastructure.service.level.AbstractServiceLevelPreparable.WORKFLOW_TO_INVOKE;
+
+
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = {ServiceLevelPreparation.class, ExceptionBuilder.class})
+public class ServiceLevelPreparationTest {
+
+ private static final String TEST_PNF_SCOPE = "pnf";
+ private static final String TEST_PROCESS_KEY = "testProcessKey";
+ private static final String PROCESS_KEY_VALUE = "testProcessKeyValue";
+ private static final List<String> PNF_HEALTH_CHECK_PARAMS = Arrays.asList("SERVICE_MODEL_INFO",
+ "SERVICE_INSTANCE_NAME", "PNF_CORRELATION_ID", "MODEL_UUID", "PNF_UUID", "PRC_BLUEPRINT_NAME",
+ "PRC_BLUEPRINT_VERSION", "PRC_CUSTOMIZATION_UUID", "RESOURCE_CUSTOMIZATION_UUID_PARAM", "PRC_INSTANCE_NAME",
+ "PRC_CONTROLLER_ACTOR", "REQUEST_PAYLOAD");
+ private Map<String, String> pnfHealthCheckTestParams = new HashMap<>();
+
+ @Autowired
+ private ServiceLevelPreparation serviceLevelPrepare;
+
+ @Autowired
+ private ExceptionBuilder exceptionBuilder;
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ private DelegateExecution execution = new DelegateExecutionFake();
+ private DelegateExecution invalidExecution = new DelegateExecutionFake();
+
+
+ @Before
+ public void setUpPnfUpgradeTest() {
+ pnfHealthCheckTestParams.put("TEST_SERVICE_MODEL_INFO", "d4c6855e-3be2-5dtu-9390-c999a38829bc");
+ pnfHealthCheckTestParams.put("TEST_SERVICE_INSTANCE_NAME", "test_service_id");
+ pnfHealthCheckTestParams.put("TEST_PNF_CORRELATION_ID", "pnfCorrelationId");
+ pnfHealthCheckTestParams.put("TEST_MODEL_UUID", "6bc0b04d-1873-4721-b53d-6615225b2a28");
+ pnfHealthCheckTestParams.put("TEST_PNF_UUID", "c93g70d9-8de3-57f1-7de1-f5690ac2b005");
+ pnfHealthCheckTestParams.put("TEST_PRC_BLUEPRINT_NAME", "serviceUpgrade");
+ pnfHealthCheckTestParams.put("TEST_PRC_BLUEPRINT_VERSION", "1.0.2");
+ pnfHealthCheckTestParams.put("TEST_PRC_CUSTOMIZATION_UUID", "PRC_customizationUuid");
+ pnfHealthCheckTestParams.put("TEST_RESOURCE_CUSTOMIZATION_UUID_PARAM", "9acb3a83-8a52-412c-9a45-901764938144");
+ pnfHealthCheckTestParams.put("TEST_PRC_INSTANCE_NAME", "Demo_pnf");
+ pnfHealthCheckTestParams.put("TEST_PRC_CONTROLLER_ACTOR", "cds");
+ pnfHealthCheckTestParams.put("TEST_REQUEST_PAYLOAD", "test_payload");
+
+ for (String param : PNF_HEALTH_CHECK_PARAMS) {
+ execution.setVariable(param, pnfHealthCheckTestParams.get("TEST_" + param));
+ }
+ execution.setVariable(RESOURCE_TYPE, TEST_PNF_SCOPE);
+ execution.setVariable(TEST_PROCESS_KEY, PROCESS_KEY_VALUE);
+
+ invalidExecution.setVariables(execution.getVariables());
+ }
+
+ @Test
+ public void executePnfUpgradeSuccessTest() throws Exception {
+ serviceLevelPrepare.execute(execution);
+ // Expect the pnf health check workflow to be set in to execution if validation is successful
+ assertThat(String.valueOf(execution.getVariable(WORKFLOW_TO_INVOKE))).isEqualTo("GenericPnfHealthCheck");
+ }
+
+ @Test
+ public void validateFailureParamsForPnfTest() throws Exception {
+ invalidExecution.removeVariable("PNF_UUID");
+ invalidExecution.setVariable("PRC_BLUEPRINT_NAME", null);
+ // BPMN exception is thrown in case of validation failure or invalid execution
+ thrown.expect(BpmnError.class);
+ serviceLevelPrepare.validateParamsWithScope(invalidExecution, TEST_PNF_SCOPE, PNF_HEALTH_CHECK_PARAMS);
+ }
+
+ @Test
+ public void invalidScopeExecuteTest() throws Exception {
+ invalidExecution.setVariable(RESOURCE_TYPE, "InvalidResource");
+ // BPMN workflow exception is expected incase of invalid resource type other than pnf/vnf
+ thrown.expect(BpmnError.class);
+ serviceLevelPrepare.execute(invalidExecution);
+ }
+
+ @Test
+ public void invokeServiceLevelPrepareWithoutScope() throws Exception {
+ invalidExecution.removeVariable(RESOURCE_TYPE);
+ thrown.expect(BpmnError.class);
+ serviceLevelPrepare.execute(invalidExecution);
+
+ }
+
+}
+
+
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListenerTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListenerTest.java
new file mode 100644
index 0000000000..d2383185d0
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/HomingListenerTest.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Nokia
+ * ================================================================================
+ * 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.bpmn.infrastructure.workflow.tasks.listeners;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
+import org.junit.Test;
+import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.DelegateExecutionImpl;
+import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
+
+public class HomingListenerTest {
+
+ private static final String CALLED_HOMING = "calledHoming";
+
+ @Test
+ public void shouldRunForAssignVnfBB() {
+ assertThat(new HomingListener().shouldRunFor("AssignVnfBB", false, null)).isTrue();
+ }
+
+ @Test
+ public void shouldNotRunForDifferentThanAssignVnfBB() {
+ assertThat(new HomingListener().shouldRunFor("someDifferentBB", false, null)).isFalse();
+ }
+
+ @Test
+ public void runWithHoming() {
+ // given
+ DelegateExecution execution = new DelegateExecutionFake();
+ execution.setVariable("homing", true);
+ execution.setVariable(CALLED_HOMING, false);
+ BuildingBlockExecution buildingBlockExecution = new DelegateExecutionImpl(execution);
+ ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock();
+ // when
+ new HomingListener().run(null, executeBuildingBlock, buildingBlockExecution);
+ // then
+ assertThat(executeBuildingBlock.isHoming()).isTrue();
+ assertThat((boolean) buildingBlockExecution.getVariable(CALLED_HOMING)).isTrue();
+ }
+}
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIPnfResourcesTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIPnfResourcesTest.java
index 59cd53edd5..b8be045f97 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIPnfResourcesTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIPnfResourcesTest.java
@@ -48,13 +48,18 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
import org.onap.aaiclient.client.aai.AAIResourcesClient;
import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoPnf;
import org.onap.so.client.aai.mapper.AAIObjectMapper;
import org.onap.so.db.catalog.beans.OrchestrationStatus;
@RunWith(MockitoJUnitRunner.Silent.class)
public class AAIPnfResourcesTest extends TestDataSetup {
+ public static final String TEST_VERSION = "testVersion";
private static final String PNF_NAME = "pnfTest";
+ public static final String TEST_CUSTOMIZATION_UUID = "testCustomizationUuid";
+ public static final String TEST_INVARIANT_UUID = "testInvariantUuid";
+ public static final String TEST_ROLE = "testRole";
private Pnf pnf;
private ServiceInstance serviceInstance;
@@ -110,42 +115,87 @@ public class AAIPnfResourcesTest extends TestDataSetup {
@Test
public void existingPnfInAaiWithInventoriedStatusCanBeUsed() throws Exception {
// given
+ Pnf pnfTest = createPnfWithDefaultName();
org.onap.aai.domain.yang.Pnf pnfFromAai = createPnf(OrchestrationStatus.INVENTORIED.toString());
when(injectionHelperMock.getAaiClient().get(org.onap.aai.domain.yang.Pnf.class,
AAIUriFactory.createResourceUri(AAIObjectType.PNF, PNF_NAME))).thenReturn(Optional.of(pnfFromAai));
// when
- testedObject.checkIfPnfExistsInAaiAndCanBeUsed(PNF_NAME);
+ testedObject.checkIfPnfExistsInAaiAndCanBeUsed(pnfTest);
+ verify(aaiResourcesClientMock, times(1)).update(any(), any());
}
@Test
public void existingPnfInAaiWithNullStatusCanBeUsed() throws Exception {
// given
+ Pnf pnfTest = createPnfWithDefaultName();
org.onap.aai.domain.yang.Pnf pnfFromAai = createPnf(null);
+ pnfTest.setRole("test");
when(injectionHelperMock.getAaiClient().get(org.onap.aai.domain.yang.Pnf.class,
AAIUriFactory.createResourceUri(AAIObjectType.PNF, PNF_NAME))).thenReturn(Optional.of(pnfFromAai));
// when
- testedObject.checkIfPnfExistsInAaiAndCanBeUsed(PNF_NAME);
+ testedObject.checkIfPnfExistsInAaiAndCanBeUsed(pnfTest);
+ verify(aaiResourcesClientMock, times(1)).update(any(), eq(pnfFromAai));
+ }
+
+ @Test
+ public void existingPnfInAaiIsUpdated() throws Exception {
+ // given
+ org.onap.aai.domain.yang.Pnf pnfFromAai = createPnf(null);
+ Pnf pnfTest = getPnfWithTestValues();
+ when(injectionHelperMock.getAaiClient().get(org.onap.aai.domain.yang.Pnf.class,
+ AAIUriFactory.createResourceUri(AAIObjectType.PNF, PNF_NAME))).thenReturn(Optional.of(pnfFromAai));
+ // when
+ testedObject.checkIfPnfExistsInAaiAndCanBeUsed(pnfTest);
+ verify(aaiResourcesClientMock, times(1)).update(any(), eq(pnfFromAai));
+ verifyPnfFromAai(pnfFromAai);
+ }
+
+ private void verifyPnfFromAai(org.onap.aai.domain.yang.Pnf pnf) {
+ assertEquals(OrchestrationStatus.INVENTORIED.toString(), pnf.getOrchestrationStatus());
+ assertEquals(TEST_ROLE, pnf.getNfRole());
+ assertEquals(TEST_CUSTOMIZATION_UUID, pnf.getModelCustomizationId());
+ assertEquals(TEST_INVARIANT_UUID, pnf.getModelInvariantId());
+ assertEquals(TEST_VERSION, pnf.getModelVersionId());
+ }
+
+ private Pnf getPnfWithTestValues() {
+ Pnf pnfTest = createPnfWithDefaultName();
+ ModelInfoPnf modelInfoPnf = getModelInfoPnf();
+ pnfTest.setModelInfoPnf(modelInfoPnf);
+ pnfTest.setOrchestrationStatus(OrchestrationStatus.INVENTORIED);
+ pnfTest.setRole(TEST_ROLE);
+ return pnfTest;
+ }
+
+ private ModelInfoPnf getModelInfoPnf() {
+ ModelInfoPnf modelInfoPnf = new ModelInfoPnf();
+ modelInfoPnf.setModelCustomizationUuid(TEST_CUSTOMIZATION_UUID);
+ modelInfoPnf.setModelInvariantUuid(TEST_INVARIANT_UUID);
+ modelInfoPnf.setModelUuid(TEST_VERSION);
+ return modelInfoPnf;
}
@Test
public void existingPnfInAaiWithEmptyStatusCanBeUsed() throws Exception {
// given
+ Pnf pnfTest = createPnfWithDefaultName();
org.onap.aai.domain.yang.Pnf pnfFromAai = createPnf(Strings.EMPTY);
when(injectionHelperMock.getAaiClient().get(org.onap.aai.domain.yang.Pnf.class,
AAIUriFactory.createResourceUri(AAIObjectType.PNF, PNF_NAME))).thenReturn(Optional.of(pnfFromAai));
// when
- testedObject.checkIfPnfExistsInAaiAndCanBeUsed(PNF_NAME);
+ testedObject.checkIfPnfExistsInAaiAndCanBeUsed(pnfTest);
}
@Test
public void existingPnfInAaiCanNotBeUsed() {
// given
+ Pnf pnfTest = createPnfWithDefaultName();
org.onap.aai.domain.yang.Pnf pnfFromAai = createPnf(OrchestrationStatus.ACTIVE.toString());
when(injectionHelperMock.getAaiClient().get(org.onap.aai.domain.yang.Pnf.class,
AAIUriFactory.createResourceUri(AAIObjectType.PNF, PNF_NAME))).thenReturn(Optional.of(pnfFromAai));
// when
try {
- testedObject.checkIfPnfExistsInAaiAndCanBeUsed(PNF_NAME);
+ testedObject.checkIfPnfExistsInAaiAndCanBeUsed(pnfTest);
} catch (Exception e) {
// then
assertThat(e.getMessage()).isEqualTo(String.format(
@@ -153,6 +203,7 @@ public class AAIPnfResourcesTest extends TestDataSetup {
+ "if status is not set or set as Inventoried",
PNF_NAME));
}
+ verify(aaiResourcesClientMock, times(0)).update(any(), any());
}
@Test
@@ -161,19 +212,21 @@ public class AAIPnfResourcesTest extends TestDataSetup {
final String relatedTo = "service-instance";
final String serviceInstanceId = "service-instance-id";
final String path = "src/test/resources/__files/BuildingBlocks/aaiPnf.json";
+ Pnf pnfTest = createPnfWithDefaultName();
org.onap.aai.domain.yang.Pnf pnfFromAai =
new ObjectMapper().readValue(new File(path), org.onap.aai.domain.yang.Pnf.class);
when(injectionHelperMock.getAaiClient().get(org.onap.aai.domain.yang.Pnf.class,
AAIUriFactory.createResourceUri(AAIObjectType.PNF, PNF_NAME))).thenReturn(Optional.of(pnfFromAai));
// when
try {
- testedObject.checkIfPnfExistsInAaiAndCanBeUsed(PNF_NAME);
+ testedObject.checkIfPnfExistsInAaiAndCanBeUsed(pnfTest);
} catch (Exception e) {
// then
assertThat(e.getMessage()).isEqualTo(String.format(
"Pnf with name %s exist with orchestration status %s and is related to %s service with certain service-instance-id: %s",
PNF_NAME, OrchestrationStatus.ACTIVE, relatedTo, serviceInstanceId));
}
+ verify(aaiResourcesClientMock, times(0)).update(any(), any());
}
private org.onap.aai.domain.yang.Pnf createPnf(String orchestrationStatus) {
@@ -182,4 +235,10 @@ public class AAIPnfResourcesTest extends TestDataSetup {
pnfFromAai.setOrchestrationStatus(orchestrationStatus);
return pnfFromAai;
}
+
+ private Pnf createPnfWithDefaultName() {
+ Pnf pnfTest = new Pnf();
+ pnfTest.setPnfName(PNF_NAME);
+ return pnfTest;
+ }
}
diff --git a/cloudify-client/pom.xml b/cloudify-client/pom.xml
index 6089d6508e..ccf2c4270e 100644
--- a/cloudify-client/pom.xml
+++ b/cloudify-client/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so</groupId>
diff --git a/common/pom.xml b/common/pom.xml
index 4223e0a0ae..08554480c3 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0"?>
+<?xml version="1.0" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>common</artifactId>
<name>MSO Common classes</name>
@@ -358,4 +358,4 @@
</plugin>
</plugins>
</build>
-</project>
+</project> \ No newline at end of file
diff --git a/common/src/main/java/org/onap/so/client/KeyStoreLoader.java b/common/src/main/java/org/onap/so/client/KeyStoreLoader.java
new file mode 100644
index 0000000000..8279be8635
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/KeyStoreLoader.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Deutsche Telekom.
+ * ================================================================================
+ * 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.client;
+
+import java.io.FileInputStream;
+import java.nio.file.Paths;
+import java.security.KeyStore;
+
+public abstract class KeyStoreLoader {
+
+ static final String SSL_KEY_STORE_KEY = "javax.net.ssl.keyStore";
+
+ static public KeyStore getKeyStore() {
+ KeyStore ks = null;
+ final char[] password = getSSlKeyStorePassword().toCharArray();
+ try (FileInputStream fis =
+ new FileInputStream(Paths.get(System.getProperty(SSL_KEY_STORE_KEY)).normalize().toString())) {
+ ks = KeyStore.getInstance(KeyStore.getDefaultType());
+ ks.load(fis, password);
+ } catch (final Exception e) {
+ return null;
+ }
+
+ return ks;
+ }
+
+ static public String getSSlKeyStorePassword() {
+ return System.getProperty("javax.net.ssl.keyStorePassword");
+ }
+}
diff --git a/common/src/main/java/org/onap/so/client/RestClientSSL.java b/common/src/main/java/org/onap/so/client/RestClientSSL.java
index f5737b862c..1e8953892e 100644
--- a/common/src/main/java/org/onap/so/client/RestClientSSL.java
+++ b/common/src/main/java/org/onap/so/client/RestClientSSL.java
@@ -20,9 +20,7 @@
package org.onap.so.client;
-import java.io.FileInputStream;
import java.net.URI;
-import java.nio.file.Paths;
import java.security.KeyStore;
import java.security.NoSuchAlgorithmException;
import java.util.Optional;
@@ -33,10 +31,8 @@ import javax.ws.rs.client.ClientBuilder;
public abstract class RestClientSSL extends RestClient {
private static final String TRUE = "true";
- private static final String SSL_KEY_STORE_KEY = "javax.net.ssl.keyStore";
private static final String MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY = "mso.load.ssl.client.keystore";
-
protected RestClientSSL(RestProperties props, Optional<URI> path) {
super(props, path);
}
@@ -52,9 +48,9 @@ public abstract class RestClientSSL extends RestClient {
try {
String loadSSLKeyStore = System.getProperty(RestClientSSL.MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY);
if (loadSSLKeyStore != null && loadSSLKeyStore.equalsIgnoreCase(TRUE)) {
- KeyStore ks = getKeyStore();
+ KeyStore ks = KeyStoreLoader.getKeyStore();
if (ks != null) {
- client = ClientBuilder.newBuilder().keyStore(ks, getSSlKeyStorePassword()).build();
+ client = ClientBuilder.newBuilder().keyStore(ks, KeyStoreLoader.getSSlKeyStorePassword()).build();
logger.info("RestClientSSL not using default SSL context - setting keystore here.");
return client;
}
@@ -67,23 +63,4 @@ public abstract class RestClientSSL extends RestClient {
}
return client;
}
-
- private KeyStore getKeyStore() {
- KeyStore ks = null;
- char[] password = getSSlKeyStorePassword().toCharArray();
- try (FileInputStream fis = new FileInputStream(
- Paths.get(System.getProperty(RestClientSSL.SSL_KEY_STORE_KEY)).normalize().toString())) {
- ks = KeyStore.getInstance(KeyStore.getDefaultType());
-
- ks.load(fis, password);
- } catch (Exception e) {
- return null;
- }
-
- return ks;
- }
-
- private String getSSlKeyStorePassword() {
- return System.getProperty("javax.net.ssl.keyStorePassword");
- }
}
diff --git a/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java b/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java
index 7ef158996d..fa309b54fe 100644
--- a/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java
+++ b/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP - SO
* ================================================================================
- * Copyright (C) 2017 - 2019 Bell Canada.
+ * Copyright (C) 2017 - 2019 Bell Canada, Deutsche Telekom.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,9 +23,16 @@ package org.onap.so.client.cds;
import io.grpc.ManagedChannel;
import io.grpc.internal.DnsNameResolverProvider;
import io.grpc.internal.PickFirstLoadBalancerProvider;
+import io.grpc.netty.GrpcSslContexts;
import io.grpc.netty.NettyChannelBuilder;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
import java.util.concurrent.CountDownLatch;
+import javax.net.ssl.SSLException;
+import javax.net.ssl.TrustManagerFactory;
import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
+import org.onap.so.client.KeyStoreLoader;
import org.onap.so.client.PreconditionFailedException;
import org.onap.so.client.RestPropertiesLoader;
import org.slf4j.Logger;
@@ -73,10 +80,36 @@ public class CDSProcessingClient implements AutoCloseable {
throw new PreconditionFailedException(
"No RestProperty.CDSProperties implementation found on classpath, can't create client.");
}
- this.channel = NettyChannelBuilder.forAddress(props.getHost(), props.getPort())
+ NettyChannelBuilder builder = NettyChannelBuilder.forAddress(props.getHost(), props.getPort())
.nameResolverFactory(new DnsNameResolverProvider())
- .loadBalancerFactory(new PickFirstLoadBalancerProvider())
- .intercept(new BasicAuthClientInterceptor(props)).usePlaintext().build();
+ .loadBalancerFactory(new PickFirstLoadBalancerProvider());
+ if (props.getUseSSL()) {
+ log.info("Configure SSL connection");
+ KeyStore ks = KeyStoreLoader.getKeyStore();
+ if (ks == null) {
+ log.error("Can't load KeyStore");
+ throw new RuntimeException("Can't load KeyStore to create secure channel");
+ }
+ try {
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+ tmf.init(ks);
+ builder.sslContext(GrpcSslContexts.forClient().trustManager(tmf).build());
+ } catch (NoSuchAlgorithmException e) {
+ log.error("Can't get default TrustManager algorithm");
+ throw new RuntimeException(e);
+ } catch (KeyStoreException e) {
+ log.error("TrustManagerFactory initialization failed");
+ throw new RuntimeException(e);
+ } catch (SSLException e) {
+ log.error("SslContext build error");
+ throw new RuntimeException(e);
+ }
+ }
+ if (props.getUseBasicAuth()) {
+ log.info("Configure Basic authentication");
+ builder.intercept(new BasicAuthClientInterceptor(props)).usePlaintext();
+ }
+ this.channel = builder.build();
this.handler = new CDSProcessingHandler(listener);
log.info("CDSProcessingClient started");
}
diff --git a/common/src/main/java/org/onap/so/client/cds/CDSProperties.java b/common/src/main/java/org/onap/so/client/cds/CDSProperties.java
index 37a5c0bc18..db566fa3de 100644
--- a/common/src/main/java/org/onap/so/client/cds/CDSProperties.java
+++ b/common/src/main/java/org/onap/so/client/cds/CDSProperties.java
@@ -22,7 +22,6 @@ package org.onap.so.client.cds;
import org.onap.so.client.RestProperties;
-
public interface CDSProperties extends RestProperties {
String getHost();
@@ -32,4 +31,8 @@ public interface CDSProperties extends RestProperties {
String getBasicAuth();
int getTimeout();
+
+ boolean getUseSSL();
+
+ boolean getUseBasicAuth();
}
diff --git a/common/src/test/java/org/onap/so/client/cds/CDSProcessingClientTest.java b/common/src/test/java/org/onap/so/client/cds/CDSProcessingClientTest.java
index 18ec9efa50..5792c28f5f 100644
--- a/common/src/test/java/org/onap/so/client/cds/CDSProcessingClientTest.java
+++ b/common/src/test/java/org/onap/so/client/cds/CDSProcessingClientTest.java
@@ -20,7 +20,6 @@
package org.onap.so.client.cds;
-
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import io.grpc.inprocess.InProcessChannelBuilder;
@@ -58,7 +57,6 @@ public class CDSProcessingClientTest {
private CDSProcessingHandler handler;
private CDSProcessingClient client;
-
private final MutableHandlerRegistry serviceRegistry = new MutableHandlerRegistry();
private final List<String> messagesDelivered = new ArrayList<>();
private final CountDownLatch allRequestsDelivered = new CountDownLatch(1);
@@ -115,7 +113,6 @@ public class CDSProcessingClientTest {
new CDSProcessingClient(listener);
}
-
@Test
public void testSendMessageFail() throws Exception {
diff --git a/common/src/test/java/org/onap/so/client/cds/TestCDSPropertiesImpl.java b/common/src/test/java/org/onap/so/client/cds/TestCDSPropertiesImpl.java
index 2834d37f1f..41238e539e 100644
--- a/common/src/test/java/org/onap/so/client/cds/TestCDSPropertiesImpl.java
+++ b/common/src/test/java/org/onap/so/client/cds/TestCDSPropertiesImpl.java
@@ -72,4 +72,14 @@ public class TestCDSPropertiesImpl implements CDSProperties {
public int getTimeout() {
return 60;
}
+
+ @Override
+ public boolean getUseSSL() {
+ return false;
+ }
+
+ @Override
+ public boolean getUseBasicAuth() {
+ return true;
+ }
}
diff --git a/cxf-logging/pom.xml b/cxf-logging/pom.xml
index c056daf6f8..cb0d126283 100644
--- a/cxf-logging/pom.xml
+++ b/cxf-logging/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<name>CXFLogging</name>
<description>Common CXF Logging Classes</description>
diff --git a/deployment-configs/pom.xml b/deployment-configs/pom.xml
index 002cd19f81..bc4df6ad36 100644
--- a/deployment-configs/pom.xml
+++ b/deployment-configs/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>deployment-configs</artifactId>
<name>deployment-configs</name>
diff --git a/docs/developer_info/Working_with_so_monitoring.rst b/docs/developer_info/Working_with_so_monitoring.rst
new file mode 100644
index 0000000000..18b6d948c0
--- /dev/null
+++ b/docs/developer_info/Working_with_so_monitoring.rst
@@ -0,0 +1,70 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+Working with SO Monitoring
+==========================
+
+After the SO code is fully deployed, certain changes needs to be made in order to access the so-monitoring ui.
+
+1. Change the service type to NodePort
+---------------------------------------
+
+By default, the type of the so monitoring service is ClusterIP, which makes the Service only reachable from within the cluster.
+This is changed to NodePort, which is used to expose the service at a static port . Hence we will be able to contact the NodePort Service, from outside the cluster, by requesting <NodeIP>:<NodePort>.
+
+Command used to get the service configuration of so monitoring is:
+
+**sudo kubectl edit svc so-monitoring -n onap**
+
+.. image:: ../images/nodeport.png
+
+2. Add the credentials to login
+--------------------------------
+
+The override.yaml needs to be added with the login credentials, that is the username and the password in encrypted form.
+
+.. code-block:: bash
+
+ spring:
+ main:
+ allow-bean-definition-overriding: true
+ security:
+ usercredentials:
+ -
+ username: gui
+ password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
+ role: GUI-Client
+
+This override.yaml can be directly edited in case of local setup using docker.
+
+When deploying in any environment using OOM, then after deployment the configmap needs to be edited. As configmap is the one reading the override.yaml.
+
+**Note** : Before deployment , if we add these changes in override.yaml ,then it may give parsing error in configmap while deployment. And after deployment the permissions on override.yaml don't allow us to edit it. So the best option is to edit the configmap using the below command and restart the pod.
+
+**kubectl -n onap edit configmap dev-so-monitoring-app-configmap**
+
+.. image:: ../images/configmap.png
+
+Special care needs to be given to the indentation. spring needs to be inline with the mso already present and others added accordingly.
+
+3. Login to SO Monitoring
+-------------------------
+
+We need to first identify the external port which its mapped to using the following command :
+
+**sudo kubectl -n onap get svc | grep so-monitoring**
+
+.. image:: ../images/nodemap.png
+
+Then access the UI of so monitoring , for example by http://<IP>:30224/
+
+username : gui,
+password: password1$
+
+
+.. image:: ../images/ui.png
+
+
+
+
diff --git a/docs/developer_info/developer_information.rst b/docs/developer_info/developer_information.rst
index 10ea8360b9..63338de898 100644
--- a/docs/developer_info/developer_information.rst
+++ b/docs/developer_info/developer_information.rst
@@ -11,6 +11,7 @@ SO Developer Information
Building_SO.rst
Working_with_SO_Docker.rst
+ Working_with_so_monitoring.rst
Camunda_Cockpit_Community_Edition.rst
Camunda_Cockpit_Enterprise_Edition.rst
Camunda_Modeler.rst
diff --git a/docs/images/configmap.png b/docs/images/configmap.png
new file mode 100644
index 0000000000..3683de3d57
--- /dev/null
+++ b/docs/images/configmap.png
Binary files differ
diff --git a/docs/images/nodemap.png b/docs/images/nodemap.png
new file mode 100644
index 0000000000..8dfda6ca12
--- /dev/null
+++ b/docs/images/nodemap.png
Binary files differ
diff --git a/docs/images/nodeport.png b/docs/images/nodeport.png
new file mode 100644
index 0000000000..53bc02f7f9
--- /dev/null
+++ b/docs/images/nodeport.png
Binary files differ
diff --git a/docs/images/ui.png b/docs/images/ui.png
new file mode 100644
index 0000000000..1c075bab22
--- /dev/null
+++ b/docs/images/ui.png
Binary files differ
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index bc63f6f199..4fb098f656 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -9,6 +9,81 @@ Service Orchestrator Release Notes
The SO provides the highest level of service orchestration in the ONAP architecture.
+
+
+Version: 1.6.4
+-----------------------
+
+:Release Date: 13th July 2020
+
+**Docker Images**
+
+**Dockers released for SO:**
+
+ - onap/so/api-handler-infra
+ - onap/so/bpmn-infra
+ - onap/so/catalog-db-adapter
+ - onap/so/openstack-adapter
+ - onap/so/request-db-adapter
+ - onap/so/sdc-controller
+ - onap/so/sdnc-adapter
+ - onap/so/so-monitoring
+ - onap/so/vfc-adapter
+ - onap/so/vnfm-adapter
+ - onap/so/ve-vnfm-adapter
+ - onap/so/nssmf-adapter
+ - onap/so/appc-orchestrator
+
+**Release Purpose**
+
+The main goal of the Frankfurt maintenance release was to:
+
+ - Appc Orchestraor changes were merged in SO and OOM as part of the release. This also used for the inplace software update flows.
+ - MDONS had an issue in its delete flow that was addressed.
+ - Vnfm-Adapter was unable to communicate with ETSI-Catalog through MSB, as the MSB cert is changed during the RC2 and this impacted the SO and ETSI Catalog DB connectivity.
+
+**New Features**
+--N/A--
+**Epics**
+--N/A--
+**Stories**
+--N/A--
+**Key Issues Addressed**
+
+- [`SO-2903 <https://jira.onap.org/browse/SO-2903>`__\ ] - Include so-appc-orchestrator with SO OOM.
+- [`SO-2967 <https://jira.onap.org/browse/SO-2967>`__\ ] - Error in Delete MDONS service flow which causes No such property error.
+- [`SO-2982 <https://jira.onap.org/browse/SO-2982>`__\ ] - Vnfm-Adapter unable to communicate with ETSI-Catalog through MSB.
+- [`SO-3022 <https://jira.onap.org/browse/SO-3022>`__\ ] - Use BB-based VNF-InPlaceUpdate flow for inPlaceSoftwareUpdate requests.
+
+
+**Security Notes**
+
+ Quick Links:
+
+ - `SO project page <https://wiki.onap.org/display/DW/Service+Orchestrator+Project>`_
+ - `Passing Badge information for SO <https://bestpractices.coreinfrastructure.org/en/projects/1702>`_
+
+
+**Known Issues**
+
+
+OJSI Issues
+
+ N/A
+
+**Upgrade Notes**
+
+ N/A
+
+**Deprecation Notes**
+
+ N/A
+
+**Other**
+
+ N/A
+***************************************************************************************
+
Version: 1.6.3
-----------------------
diff --git a/graph-inventory/aai-client/pom.xml b/graph-inventory/aai-client/pom.xml
index 8c7be3eb7e..dc9bf47070 100644
--- a/graph-inventory/aai-client/pom.xml
+++ b/graph-inventory/aai-client/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>graph-inventory</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>aai-client</artifactId>
<build>
diff --git a/graph-inventory/fluent-builder-maven-plugin/pom.xml b/graph-inventory/fluent-builder-maven-plugin/pom.xml
index 7833bce48e..f0884758b8 100644
--- a/graph-inventory/fluent-builder-maven-plugin/pom.xml
+++ b/graph-inventory/fluent-builder-maven-plugin/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>graph-inventory</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>fluent-builder-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
diff --git a/graph-inventory/pom.xml b/graph-inventory/pom.xml
index 0f465b03b1..f5ccbc0244 100644
--- a/graph-inventory/pom.xml
+++ b/graph-inventory/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>graph-inventory</artifactId>
<packaging>pom</packaging>
diff --git a/mso-api-handlers/mso-api-handler-common/pom.xml b/mso-api-handlers/mso-api-handler-common/pom.xml
index 2fbdbbfc3c..4e92775d02 100644
--- a/mso-api-handlers/mso-api-handler-common/pom.xml
+++ b/mso-api-handlers/mso-api-handler-common/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>mso-api-handlers</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
diff --git a/mso-api-handlers/mso-api-handler-infra/pom.xml b/mso-api-handlers/mso-api-handler-infra/pom.xml
index eb7b73caab..542b8db932 100644
--- a/mso-api-handlers/mso-api-handler-infra/pom.xml
+++ b/mso-api-handlers/mso-api-handler-infra/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>mso-api-handlers</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/BpmnRequestBuilder.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/BpmnRequestBuilder.java
index e8046a2cd9..6e7947bb58 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/BpmnRequestBuilder.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/BpmnRequestBuilder.java
@@ -38,6 +38,7 @@ import org.onap.so.apihandlerinfra.infra.rest.exception.CloudConfigurationNotFou
import org.onap.so.constants.Status;
import org.onap.so.db.request.beans.InfraActiveRequests;
import org.onap.so.db.request.client.RequestsDbClient;
+import org.onap.so.logger.HttpHeadersConstants;
import org.onap.so.serviceinstancebeans.CloudConfiguration;
import org.onap.so.serviceinstancebeans.ModelInfo;
import org.onap.so.serviceinstancebeans.ModelType;
@@ -436,7 +437,7 @@ public class BpmnRequestBuilder {
RequestInfo requestInfo = new RequestInfo();
requestInfo.setSuppressRollback(false);
requestInfo.setSource(MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
- requestInfo.setRequestorId(MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+ requestInfo.setRequestorId(MDC.get(HttpHeadersConstants.REQUESTOR_ID));
return requestInfo;
}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
index 3104c8415f..81ad3106b0 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
@@ -32,7 +32,6 @@ import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import com.fasterxml.jackson.core.JsonProcessingException;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.apihandler.filters.ResponseUpdater;
import org.onap.so.apihandlerinfra.Action;
@@ -43,12 +42,14 @@ import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnection
import org.onap.so.apihandlerinfra.infra.rest.handler.NetworkRestHandler;
import org.onap.so.db.catalog.beans.Recipe;
import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.logger.HttpHeadersConstants;
import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
@@ -80,7 +81,7 @@ public class Network {
ValidateException {
String requestId = networkRestHandler.getRequestId(requestContext);
- String requestorId = "Unknown";
+ String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
String requestURI = requestContext.getUriInfo().getAbsolutePath().toString();
InfraActiveRequests currentRequest = networkRestHandler.createInfraActiveRequestForDelete(requestId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
index 7aaf470e18..515862e249 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
@@ -32,7 +32,6 @@ import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import com.fasterxml.jackson.core.JsonProcessingException;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.apihandler.filters.ResponseUpdater;
import org.onap.so.apihandlerinfra.Action;
@@ -43,12 +42,14 @@ import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnection
import org.onap.so.apihandlerinfra.infra.rest.handler.ServiceInstanceRestHandler;
import org.onap.so.db.catalog.beans.Recipe;
import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.logger.HttpHeadersConstants;
import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
@@ -79,7 +80,7 @@ public class ServiceInstance {
ValidateException {
String requestId = requestHandler.getRequestId(requestContext);
- String requestorId = "Unknown";
+ String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
String requestURI = requestContext.getUriInfo().getAbsolutePath().toString();
InfraActiveRequests currentRequest = requestHandler.createInfraActiveRequestForDelete(requestId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
index ddbced98a4..81879c4281 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
@@ -32,7 +32,6 @@ import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import com.fasterxml.jackson.core.JsonProcessingException;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.apihandler.filters.ResponseUpdater;
import org.onap.so.apihandlerinfra.Action;
@@ -43,6 +42,7 @@ import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnection
import org.onap.so.apihandlerinfra.infra.rest.handler.VFModuleRestHandler;
import org.onap.so.db.catalog.beans.Recipe;
import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.logger.HttpHeadersConstants;
import org.onap.so.serviceinstancebeans.ModelType;
import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
@@ -50,6 +50,7 @@ import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
@@ -81,7 +82,7 @@ public class VfModules {
ValidateException {
String requestId = restHandler.getRequestId(requestContext);
- String requestorId = "Unknown";
+ String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
InfraActiveRequests currentRequest = restHandler.createInfraActiveRequestForDelete(requestId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
index 68e6eb5858..f1331a3185 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
@@ -32,7 +32,6 @@ import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import com.fasterxml.jackson.core.JsonProcessingException;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.apihandler.filters.ResponseUpdater;
import org.onap.so.apihandlerinfra.exceptions.ValidateException;
@@ -41,12 +40,14 @@ import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnection
import org.onap.so.apihandlerinfra.infra.rest.handler.VnfRestHandler;
import org.onap.so.db.catalog.beans.Recipe;
import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.logger.HttpHeadersConstants;
import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
@@ -77,7 +78,7 @@ public class Vnf {
throws AAIEntityNotFound, JsonProcessingException, WorkflowEngineConnectionException, ValidateException {
String requestId = vnfRestHandler.getRequestId(requestContext);
- String requestorId = "Unknown";
+ String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
InfraActiveRequests currentRequest = vnfRestHandler.createInfraActiveRequestForDelete(requestId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
index b842580b3f..001a8069d9 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
@@ -32,7 +32,6 @@ import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import com.fasterxml.jackson.core.JsonProcessingException;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.apihandler.filters.ResponseUpdater;
import org.onap.so.apihandlerinfra.Action;
@@ -44,6 +43,7 @@ import org.onap.so.apihandlerinfra.infra.rest.handler.VFModuleRestHandler;
import org.onap.so.apihandlerinfra.infra.rest.handler.VolumeRestHandler;
import org.onap.so.db.catalog.beans.Recipe;
import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.logger.HttpHeadersConstants;
import org.onap.so.serviceinstancebeans.ModelType;
import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
@@ -51,6 +51,7 @@ import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
@@ -85,7 +86,7 @@ public class Volumes {
ValidateException {
String requestId = volumeRestHandler.getRequestId(requestContext);
- String requestorId = "Unknown";
+ String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
InfraActiveRequests currentRequest = volumeRestHandler.createInfraActiveRequestForDelete(requestId,
diff --git a/mso-api-handlers/mso-requests-db-repositories/pom.xml b/mso-api-handlers/mso-requests-db-repositories/pom.xml
index efc81384d4..8f623ad9e5 100644
--- a/mso-api-handlers/mso-requests-db-repositories/pom.xml
+++ b/mso-api-handlers/mso-requests-db-repositories/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>mso-api-handlers</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>mso-requests-db-repositories</artifactId>
diff --git a/mso-api-handlers/mso-requests-db/pom.xml b/mso-api-handlers/mso-requests-db/pom.xml
index 9a9d12a047..6c1df3e450 100644
--- a/mso-api-handlers/mso-requests-db/pom.xml
+++ b/mso-api-handlers/mso-requests-db/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>mso-api-handlers</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>mso-requests-db</artifactId>
diff --git a/mso-api-handlers/pom.xml b/mso-api-handlers/pom.xml
index 86e1c5783f..9463d5d6b6 100644
--- a/mso-api-handlers/pom.xml
+++ b/mso-api-handlers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>mso-api-handlers</artifactId>
diff --git a/mso-catalog-db/pom.xml b/mso-catalog-db/pom.xml
index 0a435aa991..ff88b81461 100644
--- a/mso-catalog-db/pom.xml
+++ b/mso-catalog-db/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>mso-catalog-db</artifactId>
diff --git a/packages/docker/pom.xml b/packages/docker/pom.xml
index f895738788..c260e12123 100644
--- a/packages/docker/pom.xml
+++ b/packages/docker/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>packages</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<packaging>pom</packaging>
@@ -446,11 +446,6 @@
</dependency>
<dependency>
<groupId>org.onap.so.adapters</groupId>
- <artifactId>etsi-sol002-adapter</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onap.so.adapters</groupId>
<artifactId>mso-catalog-db-adapter</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/packages/pom.xml b/packages/pom.xml
index af302405cc..3df696c74b 100644
--- a/packages/pom.xml
+++ b/packages/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>packages</artifactId>
diff --git a/pom.xml b/pom.xml
index ee9a352836..542d8698db 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,5 @@
-<?xml version="1.0"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<?xml version="1.0" ?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.oparent</groupId>
@@ -11,7 +10,7 @@
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
<packaging>pom</packaging>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
<name>so</name>
<description>This Maven project is responsible to build and package all child projects - contributions in the MSO project.
This build can be configured to run Functional tests and to start/stop a jboss server + Mysql DB.
@@ -1037,4 +1036,4 @@
</build>
</profile>
</profiles>
-</project>
+</project> \ No newline at end of file
diff --git a/so-monitoring/pom.xml b/so-monitoring/pom.xml
index 206a0f2851..44e77ce152 100644
--- a/so-monitoring/pom.xml
+++ b/so-monitoring/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.so.monitoring</groupId>
diff --git a/so-monitoring/so-monitoring-handler/pom.xml b/so-monitoring/so-monitoring-handler/pom.xml
index 68f8c89608..def11f0b0a 100644
--- a/so-monitoring/so-monitoring-handler/pom.xml
+++ b/so-monitoring/so-monitoring-handler/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.onap.so.monitoring</groupId>
<artifactId>so-monitoring</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>so-monitoring-handler</artifactId>
<name>${project.artifactId}</name>
diff --git a/so-monitoring/so-monitoring-service/pom.xml b/so-monitoring/so-monitoring-service/pom.xml
index 110c3fe863..6671ac56d4 100644
--- a/so-monitoring/so-monitoring-service/pom.xml
+++ b/so-monitoring/so-monitoring-service/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.onap.so.monitoring</groupId>
<artifactId>so-monitoring</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>so-monitoring-service</artifactId>
<name>${project.artifactId}</name>
diff --git a/so-monitoring/so-monitoring-ui/pom.xml b/so-monitoring/so-monitoring-ui/pom.xml
index 6488c7d7df..60cae159b5 100644
--- a/so-monitoring/so-monitoring-ui/pom.xml
+++ b/so-monitoring/so-monitoring-ui/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.onap.so.monitoring</groupId>
<artifactId>so-monitoring</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<artifactId>so-monitoring-ui</artifactId>
diff --git a/so-optimization-clients/pom.xml b/so-optimization-clients/pom.xml
index a15314d4b5..79b1f7d5a4 100644
--- a/so-optimization-clients/pom.xml
+++ b/so-optimization-clients/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>so-optimization-clients</artifactId>
diff --git a/so-sdn-clients/pom.xml b/so-sdn-clients/pom.xml
index c9b417b230..905c76d7ad 100644
--- a/so-sdn-clients/pom.xml
+++ b/so-sdn-clients/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>so-sdn-clients</artifactId>
@@ -53,7 +53,7 @@
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
- <pluginExecution>
+ <pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
@@ -112,7 +112,7 @@
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
- <exclusion>
+ <exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
</exclusion>
@@ -152,7 +152,7 @@
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
</dependency>
diff --git a/so-simulator/pom.xml b/so-simulator/pom.xml
index 888602cd6b..26a3da451e 100644
--- a/so-simulator/pom.xml
+++ b/so-simulator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.so</groupId>
<artifactId>so</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.7.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>so-simulator</artifactId>
diff --git a/version.properties b/version.properties
index e377fcf8e3..4bdcfa1b54 100644
--- a/version.properties
+++ b/version.properties
@@ -4,7 +4,7 @@
major=1
minor=7
-patch=0
+patch=1
base_version=${major}.${minor}.${patch}