Merge "assignvfmodulebb must send use-preload"
authorSteve Smokowski <ss835w@att.com>
Fri, 22 Feb 2019 15:14:25 +0000 (15:14 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 22 Feb 2019 15:14:25 +0000 (15:14 +0000)
43 files changed:
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java
adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoMulticloudUtilsTest.java [new file with mode: 0644]
adapters/mso-catalog-db-adapter/pom.xml
adapters/mso-catalog-db-adapter/src/main/resources/application.yaml
adapters/mso-openstack-adapters/src/main/resources/application-local.yaml
adapters/mso-openstack-adapters/src/main/resources/application.yaml
adapters/mso-requests-db-adapter/pom.xml
adapters/mso-requests-db-adapter/src/main/resources/application-local.yaml
adapters/mso-requests-db-adapter/src/main/resources/application.yaml
adapters/mso-requests-db-adapter/src/test/resources/application-test.yaml
asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/dmaapproperties/DmaapPropertiesClientTest.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/dmaapproperties/GlobalDmaapPublisherTest.java
bpmn/mso-infrastructure-bpmn/pom.xml
bpmn/mso-infrastructure-bpmn/src/main/resources/application.yaml
bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreateAndActivatePnfResourceTest.java
bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfManagementTestImpl.java [moved from bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/AaiConnectionTestImpl.java with 94% similarity]
bpmn/mso-infrastructure-bpmn/src/test/resources/application-test.yaml
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CheckAaiForCorrelationIdDelegate.java
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreatePnfEntryInAaiDelegate.java
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreateRelation.java
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfCheckInputs.java
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/management/PnfManagement.java [moved from bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/implementation/AaiConnection.java with 93% similarity]
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/management/PnfManagementImpl.java [moved from bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/aai/AaiConnectionImpl.java with 92% similarity]
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/service/ServicePluginFactory.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CheckAaiForCorrelationIdDelegateTest.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreatePnfEntryInAaiDelegateTest.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreateRelationTest.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfCheckInputsTest.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfManagementTestImpl.java [moved from bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/AaiConnectionTestImpl.java with 93% similarity]
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfManagementThrowingException.java [moved from bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/AaiConnectionThrowingException.java with 91% similarity]
common/src/main/java/org/onap/so/client/aai/AAIRestClient.java
common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
common/src/main/java/org/onap/so/client/aai/entities/Relationships.java
common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryRestClient.java [new file with mode: 0644]
common/src/main/java/org/onap/so/client/graphinventory/entities/GraphInventoryRelationships.java [new file with mode: 0644]
common/src/main/java/org/onap/so/client/graphinventory/entities/GraphInventoryResultWrapper.java
common/src/main/java/org/onap/so/client/graphinventory/entities/uri/SimpleUri.java
mso-api-handlers/mso-api-handler-infra/pom.xml
mso-api-handlers/mso-api-handler-infra/src/main/resources/application-local.yaml
mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml
mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml
pom.xml

index 5c0110b..49758a1 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2018 Intel Corp. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
@@ -20,6 +22,9 @@
 
 package org.onap.so.openstack.utils;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.woorea.openstack.heat.model.CreateStackParam;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Arrays;
@@ -27,10 +32,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Scanner;
-
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriBuilderException;
-
 import org.onap.so.adapters.vdu.CloudInfo;
 import org.onap.so.adapters.vdu.PluginAction;
 import org.onap.so.adapters.vdu.VduArtifact;
@@ -59,10 +62,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.woorea.openstack.heat.model.CreateStackParam;
-
 @Component
 public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{
 
@@ -194,30 +193,35 @@ public class MsoMulticloudUtils extends MsoHeatUtils implements VduPlugin{
         String multicloudEndpoint = getMulticloudEndpoint(cloudSiteId, null);
         RestClient multicloudClient = getMulticloudClient(multicloudEndpoint);
 
-        Response response = multicloudClient.post(multicloudRequest);
+        if (multicloudClient == null) {
+            MsoOpenstackException me = new MsoOpenstackException(0, "", "Multicloud client could not be initialized");
+            me.addContext(CREATE_STACK);
+            throw me;
+        }
 
-        StackInfo createInfo = new StackInfo();
-        createInfo.setName(stackName);
+        Response response = multicloudClient.post(multicloudRequest);
 
         MulticloudCreateResponse multicloudResponseBody = null;
         if (response.hasEntity()) {
-            multicloudResponseBody = getCreateBody((java.io.InputStream)response.getEntity());
+            multicloudResponseBody = getCreateBody((java.io.InputStream) response.getEntity());
         }
         if (response.getStatus() == Response.Status.CREATED.getStatusCode() && response.hasEntity()) {
-            createInfo.setCanonicalName(stackName + "/" + multicloudResponseBody.getWorkloadId());
-            if (logger.isDebugEnabled()) {
-                logger.debug("Multicloud Create Response Body: " + multicloudResponseBody);
+            String canonicalName = stackName + "/";
+            if (multicloudResponseBody != null) {
+                canonicalName = canonicalName + multicloudResponseBody.getWorkloadId();
             }
-            return getStackStatus(cloudSiteId, tenantId, createInfo.getCanonicalName(), pollForCompletion, timeoutMinutes, backout);
-        } else {
-            StringBuilder stackErrorStatusReason = new StringBuilder(response.getStatusInfo().getReasonPhrase());
-            if (null != multicloudResponseBody) {
-                stackErrorStatusReason.append(multicloudResponseBody.toString());
+            if (logger.isDebugEnabled()) {
+                logger.debug("Multicloud Create Response Body: {}", multicloudResponseBody);
             }
-            MsoOpenstackException me = new MsoOpenstackException(0, "", stackErrorStatusReason.toString());
-            me.addContext(CREATE_STACK);
-            throw me;
+            return getStackStatus(cloudSiteId, tenantId, canonicalName, pollForCompletion, timeoutMinutes, backout);
+        }
+        StringBuilder stackErrorStatusReason = new StringBuilder(response.getStatusInfo().getReasonPhrase());
+        if (null != multicloudResponseBody) {
+            stackErrorStatusReason.append(multicloudResponseBody.toString());
         }
+        MsoOpenstackException me = new MsoOpenstackException(0, "", stackErrorStatusReason.toString());
+        me.addContext(CREATE_STACK);
+        throw me;
     }
 
     @Override
diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoMulticloudUtilsTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoMulticloudUtilsTest.java
new file mode 100644 (file)
index 0000000..fcb651e
--- /dev/null
@@ -0,0 +1,119 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 Samsung Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.openstack.utils;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Optional;
+import org.apache.http.HttpStatus;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.onap.so.BaseTest;
+import org.onap.so.cloud.CloudConfig;
+import org.onap.so.db.catalog.beans.CloudIdentity;
+import org.onap.so.db.catalog.beans.CloudSite;
+import org.onap.so.openstack.beans.StackInfo;
+import org.onap.so.openstack.exceptions.MsoException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class MsoMulticloudUtilsTest extends BaseTest {
+
+    @Autowired
+    private MsoMulticloudUtils multicloudUtils;
+
+    @InjectMocks
+    private MsoMulticloudUtils multicloudUtilsMock;
+
+    @Mock
+    private CloudConfig cloudConfigMock;
+
+    private static final String CREATE_STACK_RESPONSE = "{\"template_type\": \"TEST-template\", \"workload_id\": "
+        + "\"TEST-workload\", \"template_response\": {\"stack\": {\"id\": \"TEST-stack\", \"links\": []}}}";
+
+    @Test
+    public void createStackSuccess() throws MsoException, IOException {
+        stubFor(post(urlPathEqualTo("/v2.0"))
+            .willReturn(aResponse().withHeader("Content-Type", "application/json")
+                .withBody(CREATE_STACK_RESPONSE)
+                .withStatus(HttpStatus.SC_CREATED)));
+        StackInfo result = multicloudUtils.createStack("MTN13", "TEST-tenant", "TEST-stack",
+            "TEST-heat", new HashMap<>(), false, 200, "TEST-env",
+            new HashMap<>(), new HashMap<>());
+        assertNotNull(result);
+        assertEquals("TEST-stack", result.getName());
+    }
+
+    @Test
+    public void createStackMulticloudClientIsNull() {
+        try {
+            multicloudUtilsMock.cloudConfig = cloudConfigMock;
+            CloudSite cloudSite = new CloudSite();
+            cloudSite.setIdentityService(new CloudIdentity());
+            when(cloudConfigMock.getCloudSite("MTN13")).
+                thenReturn(Optional.of(cloudSite));
+            multicloudUtilsMock.createStack("MTN13", "TEST-tenant", "TEST-stack",
+                "TEST-heat", new HashMap<>(), false, 200, "TEST-env",
+                new HashMap<>(), new HashMap<>());
+        } catch (MsoException e) {
+            assertEquals("0 : Multicloud client could not be initialized", e.toString());
+            return;
+        }
+        fail("MsoOpenstackException expected!");
+    }
+
+    @Test
+    public void createStackBadRequest() {
+        try {
+            stubFor(post(urlPathEqualTo("/v2.0"))
+                .willReturn(aResponse().withHeader("Content-Type", "application/json")
+                    .withStatus(HttpStatus.SC_BAD_REQUEST)));
+            multicloudUtils.createStack("MTN13", "TEST-tenant", "TEST-stack",
+                "TEST-heat", new HashMap<>(), false, 200, "TEST-env",
+                new HashMap<>(), new HashMap<>());
+        } catch (MsoException e) {
+            assertEquals("0 : Bad Request", e.toString());
+            return;
+        }
+        fail("MsoOpenstackException expected!");
+    }
+
+    @Test
+    public void createStackEmptyResponseEntity() throws MsoException {
+        stubFor(post(urlPathEqualTo("/v2.0"))
+            .willReturn(aResponse().withHeader("Content-Type", "application/json")
+                .withStatus(HttpStatus.SC_CREATED)));
+        StackInfo result = multicloudUtils.createStack("MTN13", "TEST-tenant", "TEST-stack",
+            "TEST-heat", new HashMap<>(), false, 200, "TEST-env",
+            new HashMap<>(), new HashMap<>());
+        assertNotNull(result);
+        assertEquals("TEST-stack/", result.getName());
+    }
+}
index 931dee2..390c775 100644 (file)
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-data-jpa</artifactId>
+                       <exclusions>
+                       <exclusion>
+                           <groupId>org.apache.tomcat</groupId>
+                           <artifactId>tomcat-jdbc</artifactId>
+                        </exclusion>
+               </exclusions>
                </dependency>
                <dependency>
                        <groupId>org.springframework.boot</groupId>
index 83101c1..d46a8ee 100644 (file)
@@ -16,7 +16,7 @@ mso:
     
 spring:
   datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
+    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
     driver-class-name: org.mariadb.jdbc.Driver
index ef9b113..771aa80 100644 (file)
@@ -64,7 +64,7 @@ mso:
 # H2
 spring:
   datasource:
-    jdbc-url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;
+    url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;
     username: sa
     password: sa
     driver-class-name: org.h2.Driver
index e682060..4e8d389 100644 (file)
@@ -18,7 +18,6 @@ mso:
       retryMultiplier: 60000
 spring:
   datasource:
-    type: com.zaxxer.hikari.HikariDataSource
     url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
index 4a4d09a..a4761ad 100644 (file)
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-data-jpa</artifactId>
+                       <exclusions>
+                       <exclusion>
+                           <groupId>org.apache.tomcat</groupId>
+                           <artifactId>tomcat-jdbc</artifactId>
+                        </exclusion>
+               </exclusions>
                        <optional>true</optional>
                </dependency>
                <dependency>
index b2b1627..5d3a837 100644 (file)
@@ -1,51 +1,51 @@
-# will be used as entry in DB to say SITE OFF/ON for healthcheck
-
-server:
-    port: 8090
-    tomcat:
-        max-threads: 50
-ssl-enable: false
-mso:
-  adapters:
-    requestDb:
-      auth: Basic YnBlbDptc28tZGItMTUwNyE=
-      endpoint: http://localhost:8081
-  logPath: logs
-  site-name: localSite
-  infra-requests:
-    archived:
-      period: 180
-spring:
-  datasource:
-    jdbc-url: jdbc:mariadb://localhost:3306/requestdb
-    username: catalog
-    password: catalog123
-    driver-class-name: org.mariadb.jdbc.Driver
-    initialize: true
-    initialization-mode: never
-  jpa:
-    generate-ddl: false
-    show-sql: false
-    hibernate:
-      ddl-auto: validate
-      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-      enable-lazy-load-no-trans: true
-    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
-  security:
-    usercredentials:
-    -
-      username: bpel
-      password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'
-      role: BPEL-Client
-    -  
-      username: mso_admin
-      password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'
-      role: ACTUATOR
-
-
-flyway:
-  baseline-on-migrate: false
-  url: jdbc:mariadb://localhost:3306/requestdb
-  user: catalog
-  password: catalog123
+# will be used as entry in DB to say SITE OFF/ON for healthcheck\r
+\r
+server:\r
+    port: 8090\r
+    tomcat:\r
+        max-threads: 50\r
+ssl-enable: false\r
+mso:\r
+  adapters:\r
+    requestDb:\r
+      auth: Basic YnBlbDptc28tZGItMTUwNyE=\r
+      endpoint: http://localhost:8081\r
+  logPath: logs\r
+  site-name: localSite\r
+  infra-requests:\r
+    archived:\r
+      period: 180\r
+spring:\r
+  datasource:\r
+    url: jdbc:mariadb://localhost:3306/requestdb\r
+    username: catalog\r
+    password: catalog123\r
+    driver-class-name: org.mariadb.jdbc.Driver\r
+    initialize: true\r
+    initialization-mode: never\r
+  jpa:\r
+    generate-ddl: false\r
+    show-sql: false\r
+    hibernate:\r
+      ddl-auto: validate\r
+      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy\r
+      enable-lazy-load-no-trans: true\r
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect\r
+  security:\r
+    usercredentials:\r
+    -\r
+      username: bpel\r
+      password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'\r
+      role: BPEL-Client\r
+    -  \r
+      username: mso_admin\r
+      password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'\r
+      role: ACTUATOR\r
+\r
+\r
+flyway:\r
+  baseline-on-migrate: false\r
+  url: jdbc:mariadb://localhost:3306/requestdb\r
+  user: catalog\r
+  password: catalog123\r
       
\ No newline at end of file
index 0da782b..9429592 100644 (file)
@@ -18,15 +18,10 @@ mso:
 # H2
 spring:
   datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
+    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
     driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2: 
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true 
   jpa:
       show-sql: false
       hibernate:
index 19bff50..db98852 100644 (file)
@@ -1,70 +1,70 @@
-# will be used as entry in DB to say SITE OFF/ON for healthcheck
-security:
-  basic:
-    enabled: false
-server:
-    port: 8080
-    tomcat:
-        max-threads: 50
-ssl-enable: false
-mso:
-  adapters:
-    requestDb:
-      auth: Basic YnBlbDptc28tZGItMTUwNyE=
-      endpoint: http://localhost:8081
-  logPath: logs
-  site-name: localSite
-  infra-requests:
-    archived:
-      period: 0
-spring:
-  datasource:
-    jdbc-url: jdbc:mariadb://localhost:3307/requestdb
-    username: root
-    password: password
-    driver-class-name: org.mariadb.jdbc.Driver
-    initialize: true
-    initialization-mode: never
-  jpa:   
-    generate-ddl: false
-    show-sql: false
-    hibernate:      
-      ddl-auto: validate
-      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-      enable-lazy-load-no-trans: true
-    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
-  security:
-    usercredentials:
-    -
-      username: bpel
-      password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'
-      role: BPEL-Client
-    -  
-      username: mso_admin
-      password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'
-      role: ACTUATOR
-mariaDB4j:
-  dataDir: 
-  port: 3307
-  databaseName: requestdb
-
-management:
-  endpoints:
-    web:
-      base-path: /manage
-  server:
-    servlet:
-      context-path: /manage
-  metrics:
-    se-global-registry: false
-    export:
-      prometheus:
-        enabled: true # Whether exporting of metrics to Prometheus is enabled.
-        step: 1m # Step size (i.e. reporting frequency) to use.  
-
-
-flyway:
-  baseline-on-migrate: false
-  jdbc-url: jdbc:mariadb://localhost:3307/requestdb
-  user: root
-  password: password
+# will be used as entry in DB to say SITE OFF/ON for healthcheck\r
+security:\r
+  basic:\r
+    enabled: false\r
+server:\r
+    port: 8080\r
+    tomcat:\r
+        max-threads: 50\r
+ssl-enable: false\r
+mso:\r
+  adapters:\r
+    requestDb:\r
+      auth: Basic YnBlbDptc28tZGItMTUwNyE=\r
+      endpoint: http://localhost:8081\r
+  logPath: logs\r
+  site-name: localSite\r
+  infra-requests:\r
+    archived:\r
+      period: 0\r
+spring:\r
+  datasource:\r
+    url: jdbc:mariadb://localhost:3307/requestdb\r
+    username: root\r
+    password: password\r
+    driver-class-name: org.mariadb.jdbc.Driver\r
+    initialize: true\r
+    initialization-mode: never\r
+  jpa:   \r
+    generate-ddl: false\r
+    show-sql: false\r
+    hibernate:      \r
+      ddl-auto: validate\r
+      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy\r
+      enable-lazy-load-no-trans: true\r
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect\r
+  security:\r
+    usercredentials:\r
+    -\r
+      username: bpel\r
+      password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'\r
+      role: BPEL-Client\r
+    -  \r
+      username: mso_admin\r
+      password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'\r
+      role: ACTUATOR\r
+mariaDB4j:\r
+  dataDir: \r
+  port: 3307\r
+  databaseName: requestdb\r
+\r
+management:\r
+  endpoints:\r
+    web:\r
+      base-path: /manage\r
+  server:\r
+    servlet:\r
+      context-path: /manage\r
+  metrics:\r
+    se-global-registry: false\r
+    export:\r
+      prometheus:\r
+        enabled: true # Whether exporting of metrics to Prometheus is enabled.\r
+        step: 1m # Step size (i.e. reporting frequency) to use.  \r
+\r
+\r
+flyway:\r
+  baseline-on-migrate: false\r
+  url: jdbc:mariadb://localhost:3307/requestdb\r
+  user: root\r
+  password: password\r
index d13fff4..10b8ba7 100644 (file)
@@ -1060,7 +1060,17 @@ public class ToscaResourceInstaller {
                
                }
 
-               if(networkResourceCustomization==null || !networkUUIDsMatch){
+               if (networkResourceCustomization!=null && !networkUUIDsMatch){
+                       
+                       NetworkResource networkResource = createNetworkResource(networkNodeTemplate, toscaResourceStructure, heatTemplate,
+                                       aicMax, aicMin);
+                       
+                       networkResourceCustomization.setNetworkResource(networkResource);                       
+                                       
+                       networkCustomizationRepo.saveAndFlush(networkResourceCustomization);
+                       
+               }
+               else if(networkResourceCustomization==null){
                        networkResourceCustomization = createNetworkResourceCustomization(networkNodeTemplate,
                                        toscaResourceStructure);
                                        
index c50a6db..886025c 100644 (file)
 
 package org.onap.so.client.dmaapproperties;
 
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.post;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
 
 import java.io.File;
 import java.io.IOException;
 
-import org.apache.http.HttpStatus;
+import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.so.BaseTest;
 import org.onap.so.client.avpn.dmaap.beans.AVPNDmaapBean;
 import org.onap.so.client.exception.MapperException;
-import org.onap.so.BaseTest;
+import org.onap.so.client.dmaapproperties.GlobalDmaapPublisher;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import static com.github.tomakehurst.wiremock.client.WireMock.*;
 
 public class DmaapPropertiesClientTest extends BaseTest{
        
@@ -75,10 +78,24 @@ public class DmaapPropertiesClientTest extends BaseTest{
 
        @Test
        public void testDmaapPublishRequest() throws JsonProcessingException, MapperException {
-               stubFor(post(urlEqualTo("/events/com.att.mso.asyncStatusUpdate?timeout=60000"))
-                               .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.SC_ACCEPTED)));
-
-               dmaapPropertiesClient.dmaapPublishRequest(requestId, clientSource, correlator, serviceInstanceId, startTime, finishTime, requestScope,
-                                                                                                       requestType, timestamp, requestState, statusMessage, percentProgress, false);
+               DmaapPropertiesClient client = Mockito.spy(DmaapPropertiesClient.class);
+               GlobalDmaapPublisher mockedClientDmaapPublisher = Mockito.mock(GlobalDmaapPublisher.class);
+               AVPNDmaapBean mockedDmaapBean = Mockito.mock(AVPNDmaapBean.class);
+               String request = "test";
+               
+               doReturn(mockedDmaapBean).when(client).buildRequestJson(requestId, clientSource, correlator, serviceInstanceId, startTime, finishTime, requestScope,
+                               requestType, timestamp, requestState, statusMessage, percentProgress, false); 
+               
+               AVPNDmaapBean actualDmaapBean = client.buildRequestJson(requestId, clientSource, correlator, serviceInstanceId, startTime, finishTime, requestScope,
+                               requestType, timestamp, requestState, statusMessage, percentProgress, false);
+               mockedClientDmaapPublisher.send(request);
+               
+               doNothing().when(mockedClientDmaapPublisher).send(anyString());
+               
+               verify(client, times(1)).buildRequestJson(requestId, clientSource, correlator, serviceInstanceId, startTime, 
+                               finishTime, requestScope, requestType, timestamp, requestState, statusMessage, percentProgress, false);
+               verify(mockedClientDmaapPublisher, times(1)).send(request);
+                  
+               assertNotNull(actualDmaapBean);
        }
 }
index fc69f81..088b018 100644 (file)
 package org.onap.so.client.dmaapproperties;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.onap.so.BaseTest;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class GlobalDmaapPublisherTest extends BaseTest{
 
+       @BeforeClass
+       public static void setUp() throws Exception {
+               System.setProperty("mso.global.dmaap.host", "http://test:1234");
+       }
+    
        @Autowired
        private GlobalDmaapPublisher globalDmaapPublisher;
-
-
+       
        @Test
        public void testGetters() {
                assertEquals("81B7E3533B91A6706830611FB9A8ECE529BBCCE754B1F1520FA7C8698B42F97235BEFA993A387E664D6352C63A6185D68DA7F0B1D360637CBA102CB166E3E62C11EB1F75386D3506BCECE51E54", globalDmaapPublisher.getAuth());
                assertEquals("07a7159d3bf51a0e53be7a8f89699be7", globalDmaapPublisher.getKey());
                assertEquals("com.att.mso.asyncStatusUpdate", globalDmaapPublisher.getTopic());
-               assertEquals("http://localhost:" + wireMockPort, globalDmaapPublisher.getHost().get());
+               assertEquals("http://test:1234", globalDmaapPublisher.getHost().get());
        }
 }
index 5d0d05d..fceb181 100644 (file)
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-data-jpa</artifactId>
+                       <exclusions>
+                       <exclusion>
+                           <groupId>org.apache.tomcat</groupId>
+                           <artifactId>tomcat-jdbc</artifactId>
+                        </exclusion>
+               </exclusions>
                        <optional>true</optional>
                </dependency>
                <dependency>
index 829fc12..d3d2c60 100644 (file)
@@ -8,7 +8,7 @@ mso:
 spring: 
   datasource:
      driver-class-name: org.mariadb.jdbc.Driver 
-     jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/camundabpmn
+     url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/camundabpmn
      username: ${DB_USERNAME}
      password: ${DB_PASSWORD}
   http:
index db6cbe0..13fe61f 100644 (file)
@@ -46,14 +46,14 @@ public class CreateAndActivatePnfResourceTest extends BaseIntegrationTest {
     private Map<String, Object> variables;
 
     @Autowired
-    private AaiConnectionTestImpl aaiConnection;
+    private PnfManagementTestImpl pnfManagementTest;
 
     @Autowired
     private DmaapClientTestImpl dmaapClientTestImpl;
 
     @Before
     public void setup() {
-        aaiConnection.reset();
+        pnfManagementTest.reset();
         variables = new HashMap<>();
         variables.put("serviceInstanceId", SERVICE_INSTANCE_ID);
         variables.put(PNF_UUID, VALID_UUID);
@@ -62,7 +62,7 @@ public class CreateAndActivatePnfResourceTest extends BaseIntegrationTest {
     @Test
     public void shouldWaitForMessageFromDmaapAndUpdateAaiEntryWhenAaiEntryExists() {
         // given
-        variables.put(CORRELATION_ID, AaiConnectionTestImpl.ID_WITH_ENTRY);
+        variables.put(CORRELATION_ID, PnfManagementTestImpl.ID_WITH_ENTRY);
         // when
         ProcessInstance instance = runtimeService
                 .startProcessInstanceByKey("CreateAndActivatePnfResource", "businessKey", variables);
@@ -81,14 +81,14 @@ public class CreateAndActivatePnfResourceTest extends BaseIntegrationTest {
                 "CreateRelationId",
                 "AaiEntryUpdated"
         );
-        Assertions.assertThat(aaiConnection.getServiceAndPnfRelationMap()).
-                containsOnly(MapEntry.entry(SERVICE_INSTANCE_ID,AaiConnectionTestImpl.ID_WITH_ENTRY));
+        Assertions.assertThat(pnfManagementTest.getServiceAndPnfRelationMap()).
+                containsOnly(MapEntry.entry(SERVICE_INSTANCE_ID, PnfManagementTestImpl.ID_WITH_ENTRY));
     }
 
     @Test
     public void shouldCreateAaiEntryWaitForMessageFromDmaapAndUpdateAaiEntryWhenNoAaiEntryExists() {
         // given
-        variables.put(CORRELATION_ID, AaiConnectionTestImpl.ID_WITHOUT_ENTRY);
+        variables.put(CORRELATION_ID, PnfManagementTestImpl.ID_WITHOUT_ENTRY);
         // when
         ProcessInstance instance = runtimeService
                 .startProcessInstanceByKey("CreateAndActivatePnfResource", "businessKey", variables);
@@ -108,8 +108,8 @@ public class CreateAndActivatePnfResourceTest extends BaseIntegrationTest {
                 "CreateRelationId",
                 "AaiEntryUpdated"
         );
-        Assertions.assertThat(aaiConnection.getCreated()).containsOnlyKeys(AaiConnectionTestImpl.ID_WITHOUT_ENTRY);
-        Assertions.assertThat(aaiConnection.getServiceAndPnfRelationMap()).
-                containsOnly(MapEntry.entry(SERVICE_INSTANCE_ID,AaiConnectionTestImpl.ID_WITHOUT_ENTRY));
+        Assertions.assertThat(pnfManagementTest.getCreated()).containsOnlyKeys(PnfManagementTestImpl.ID_WITHOUT_ENTRY);
+        Assertions.assertThat(pnfManagementTest.getServiceAndPnfRelationMap()).
+                containsOnly(MapEntry.entry(SERVICE_INSTANCE_ID, PnfManagementTestImpl.ID_WITHOUT_ENTRY));
     }
 }
@@ -25,13 +25,13 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 import org.onap.aai.domain.yang.Pnf;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.onap.so.bpmn.infrastructure.pnf.management.PnfManagement;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Component;
 
 @Component
 @Primary
-public class AaiConnectionTestImpl implements AaiConnection {
+public class PnfManagementTestImpl implements PnfManagement {
 
     public static final String ID_WITHOUT_ENTRY = "IdWithoutEntry";
     public static final String ID_WITH_ENTRY = "idWithEntryNoIp";
index 09ffc0e..56a92cb 100644 (file)
@@ -157,7 +157,7 @@ sniro:
     headers.latestVersion: 2
 spring:
   datasource:
-    jdbc-url: jdbc:mariadb://localhost:3307/camundabpmn
+    url: jdbc:mariadb://localhost:3307/camundabpmn
     username: root
     password: password
     driver-class-name: org.mariadb.jdbc.Driver
index 8d353f1..a8fb215 100644 (file)
@@ -28,7 +28,7 @@ import java.io.IOException;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.engine.delegate.JavaDelegate;
 import org.onap.so.bpmn.common.scripts.ExceptionUtil;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.onap.so.bpmn.infrastructure.pnf.management.PnfManagement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,11 +46,11 @@ public class CheckAaiForCorrelationIdDelegate implements JavaDelegate {
 
     private static final Logger logger = LoggerFactory.getLogger(CheckAaiForCorrelationIdDelegate.class);
 
-    private AaiConnection aaiConnection;
+    private PnfManagement pnfManagement;
 
     @Autowired
-    public void setAaiConnection(AaiConnection aaiConnection) {
-        this.aaiConnection = aaiConnection;
+    public void setPnfManagement(PnfManagement pnfManagement) {
+        this.pnfManagement = pnfManagement;
     }
 
     @Override
@@ -60,7 +60,7 @@ public class CheckAaiForCorrelationIdDelegate implements JavaDelegate {
             new ExceptionUtil().buildAndThrowWorkflowException(execution, 500, CORRELATION_ID + " is not set");
         }
         try {
-            boolean isEntry = aaiConnection.getEntryFor(correlationId).isPresent();
+            boolean isEntry = pnfManagement.getEntryFor(correlationId).isPresent();
             logger.debug("AAI entry is found for pnf correlation id {}: {}", CORRELATION_ID, isEntry);
             execution.setVariableLocal(AAI_CONTAINS_INFO_ABOUT_PNF, isEntry);
         } catch (IOException e) {
index 2268d22..c31041f 100644 (file)
@@ -28,7 +28,7 @@ import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableName
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.engine.delegate.JavaDelegate;
 import org.onap.aai.domain.yang.Pnf;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.onap.so.bpmn.infrastructure.pnf.management.PnfManagement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,11 +45,11 @@ import org.springframework.stereotype.Component;
 public class CreatePnfEntryInAaiDelegate implements JavaDelegate {
 
     private static final Logger logger = LoggerFactory.getLogger(CreatePnfEntryInAaiDelegate.class);
-    private AaiConnection aaiConnection;
+    private PnfManagement pnfManagement;
 
     @Autowired
-    public void setAaiConnection(AaiConnection aaiConnection) {
-        this.aaiConnection = aaiConnection;
+    public void setPnfManagement(PnfManagement pnfManagement) {
+        this.pnfManagement = pnfManagement;
     }
 
     @Override
@@ -59,7 +59,7 @@ public class CreatePnfEntryInAaiDelegate implements JavaDelegate {
         Pnf pnf = new Pnf();
         pnf.setPnfId(pnfUuid);
         pnf.setPnfName(correlationId);
-        aaiConnection.createEntry(correlationId, pnf);
+        pnfManagement.createEntry(correlationId, pnf);
         logger.debug("AAI entry is created for pnf correlation id: {}, pnf uuid: {}", correlationId, pnfUuid);
     }
 }
index 21d4396..7b6706f 100644 (file)
@@ -23,7 +23,7 @@ package org.onap.so.bpmn.infrastructure.pnf.delegate;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.engine.delegate.JavaDelegate;
 import org.onap.so.bpmn.common.scripts.ExceptionUtil;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.onap.so.bpmn.infrastructure.pnf.management.PnfManagement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,11 +34,11 @@ public class CreateRelation implements JavaDelegate {
 
     private static final Logger logger = LoggerFactory.getLogger(CreateRelation.class);
 
-    private AaiConnection aaiConnectionImpl;
+    private PnfManagement pnfManagementImpl;
 
     @Autowired
-    public CreateRelation(AaiConnection aaiConnectionImpl) {
-        this.aaiConnectionImpl = aaiConnectionImpl;
+    public CreateRelation(PnfManagement pnfManagementImpl) {
+        this.pnfManagementImpl = pnfManagementImpl;
     }
 
     @Override
@@ -46,7 +46,7 @@ public class CreateRelation implements JavaDelegate {
         String serviceInstanceId = (String) delegateExecution.getVariable("serviceInstanceId");
         String pnfName = (String) delegateExecution.getVariable("correlationId");
         try {
-            aaiConnectionImpl.createRelation(serviceInstanceId, pnfName);
+            pnfManagementImpl.createRelation(serviceInstanceId, pnfName);
         } catch (Exception e) {
             new ExceptionUtil().buildAndThrowWorkflowException(delegateExecution, 9999,
                     "An exception occurred when making service and pnf relation. Exception: " + e.getMessage());
index a975339..1b185f7 100644 (file)
@@ -31,7 +31,6 @@ import com.google.common.base.Strings;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.engine.delegate.JavaDelegate;
 import org.onap.so.bpmn.common.scripts.ExceptionUtil;
-import org.onap.so.logger.MsoLogger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -40,13 +39,12 @@ import org.springframework.stereotype.Component;
 public class PnfCheckInputs implements JavaDelegate {
 
     public static final String UUID_REGEX = "(?i)^[0-9a-f]{8}-[0-9a-f]{4}-[1-5]{1}[0-9a-f]{3}-[89ab]{1}[0-9a-f]{3}-[0-9a-f]{12}$";
-    private static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, PnfCheckInputs.class);
 
-    private String defaultTimeout;
+    private String pnfEntryNotificationTimeout;
 
     @Autowired
-    public PnfCheckInputs(@Value("${aai.pnfEntryNotificationTimeout}") String defaultTimeout) {
-        this.defaultTimeout = defaultTimeout;
+    public PnfCheckInputs(@Value("${aai.pnfEntryNotificationTimeout}") String pnfEntryNotificationTimeout) {
+        this.pnfEntryNotificationTimeout = pnfEntryNotificationTimeout;
     }
 
     @Override
@@ -75,15 +73,11 @@ public class PnfCheckInputs implements JavaDelegate {
     }
 
     private void validateTimeout(DelegateExecution execution) {
-        String timeout = (String) execution.getVariable(TIMEOUT_FOR_NOTIFICATION);
-        if (Strings.isNullOrEmpty(timeout)) {
-            LOGGER.debug("timeoutForPnfEntryNotification variable not found, setting default");
-            if (defaultTimeout == null) {
-                new ExceptionUtil().buildAndThrowWorkflowException(execution, 9999,
-                    "default timeoutForPnfEntryNotification value not defined");
-            }
-            execution.setVariable(TIMEOUT_FOR_NOTIFICATION, defaultTimeout);
+        if (Strings.isNullOrEmpty(pnfEntryNotificationTimeout)) {
+            new ExceptionUtil().buildAndThrowWorkflowException(execution, 9999,
+                    "timeoutForPnfEntryNotification value not defined");
         }
+        execution.setVariable(TIMEOUT_FOR_NOTIFICATION, pnfEntryNotificationTimeout);
     }
 
     private void validateServiceInstanceId(DelegateExecution execution) {
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.bpmn.infrastructure.pnf.implementation;
+package org.onap.so.bpmn.infrastructure.pnf.management;
 
 import java.io.IOException;
 import java.util.Optional;
 import org.onap.aai.domain.yang.Pnf;
 
-public interface AaiConnection {
+public interface PnfManagement {
 
     Optional<Pnf> getEntryFor(String correlationId) throws IOException;
 
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.bpmn.infrastructure.pnf.aai;
+package org.onap.so.bpmn.infrastructure.pnf.management;
 
 import java.util.Optional;
 import org.onap.aai.domain.yang.Pnf;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
 import org.onap.so.client.aai.AAIObjectType;
 import org.onap.so.client.aai.AAIResourcesClient;
 import org.onap.so.client.aai.AAIRestClientImpl;
@@ -31,7 +30,7 @@ import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class AaiConnectionImpl implements AaiConnection {
+public class PnfManagementImpl implements PnfManagement {
 
     @Override
     public Optional<Pnf> getEntryFor(String correlationId) {
index 48c7863..477dc34 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
@@ -127,7 +129,7 @@ public class ServicePluginFactory {
                        return newRequest;
                }
 
-               List<Resource> addResourceList = new ArrayList<Resource>();
+               List<Resource> addResourceList = new ArrayList<>();
                addResourceList.addAll(serviceDecomposition.getServiceResources());
                
                serviceDecomposition.setVnfResources(null);
@@ -237,7 +239,7 @@ public class ServicePluginFactory {
                String url = getInventoryOSSEndPoint();
                url += "/oss/inventory?location=" +  UriUtils.encode(locationAddress,"UTF-8");
                String responseContent = sendRequest(url, "GET", "");
-               List<Object> accessTPs = new ArrayList<Object>();
+               List<Object> accessTPs = new ArrayList<>();
                if (null != responseContent) {
                        accessTPs = getJsonObject(responseContent, List.class);
                }
@@ -246,8 +248,8 @@ public class ServicePluginFactory {
        
        @SuppressWarnings("unchecked")
        private void putResourceRequestInputs(Map<String, Object> resource, Map<String, Object> resourceInputs) {
-               Map<String, Object> resourceParametersObject = new HashMap<String, Object>();
-               Map<String, Object> resourceRequestInputs = new HashMap<String, Object>();
+               Map<String, Object> resourceParametersObject = new HashMap<>();
+               Map<String, Object> resourceRequestInputs = new HashMap<>();
                resourceRequestInputs.put("requestInputs", resourceInputs);
                resourceParametersObject.put("parameters", resourceRequestInputs);
 
@@ -428,7 +430,6 @@ public class ServicePluginFactory {
        // this method check if pInterface is remote
        private boolean isRemotePInterface(AAIResourcesClient client, AAIResourceUri uri) {
                
-               Map<String, String> keys = uri.getURIKeys();
                String uriString = uri.build().toString();
 
                if (uriString != null) {
@@ -555,14 +556,14 @@ public class ServicePluginFactory {
        }
 
        private List<Object> queryTerminalPointsFromServiceProviderSystem(String srcLocation, String dstLocation) {
-               Map<String, String> locationSrc = new HashMap<String, String>();
+               Map<String, String> locationSrc = new HashMap<>();
                locationSrc.put("location", srcLocation);
-               Map<String, String> locationDst = new HashMap<String, String>();
+               Map<String, String> locationDst = new HashMap<>();
                locationDst.put("location", dstLocation);
-               List<Map<String, String>> locations = new ArrayList<Map<String, String>>();
+               List<Map<String, String>> locations = new ArrayList<>();
                locations.add(locationSrc);
                locations.add(locationDst);
-               List<Object> returnList = new ArrayList<Object>();
+               List<Object> returnList = new ArrayList<>();
                String reqContent = getJsonString(locations);
                String url = getThirdSPEndPoint();
                String responseContent = sendRequest(url, "POST", reqContent);
@@ -604,7 +605,7 @@ public class ServicePluginFactory {
                Map<String, Object> serviceObject = (Map<String, Object>) uuiObject.get("service");
                Map<String, Object> serviceParametersObject = (Map<String, Object>) serviceObject.get("parameters");
                Map<String, Object> serviceRequestInputs = (Map<String, Object>) serviceParametersObject.get("requestInputs");
-               Map<String, Object> oofQueryObject = new HashMap<String, Object>();
+               Map<String, Object> oofQueryObject = new HashMap<>();
                List<Object> resources = (List<Object>) serviceParametersObject.get("resources");
                oofQueryObject.put("src-access-provider-id", serviceRequestInputs.get("inner-src-access-provider-id"));
                oofQueryObject.put("src-access-client-id", serviceRequestInputs.get("inner-src-access-client-id"));
@@ -620,7 +621,7 @@ public class ServicePluginFactory {
                String url = getOOFCalcEndPoint();
                String responseContent = sendRequest(url, "POST", oofRequestReq);
 
-               List<Object> returnList = new ArrayList<Object>();
+               List<Object> returnList = new ArrayList<>();
                if (null != responseContent) {
                        returnList = getJsonObject(responseContent, List.class);
                }
@@ -635,7 +636,7 @@ public class ServicePluginFactory {
        }
        
        private Map<String, Object> getReturnRoute(List<Object> returnList){
-               Map<String, Object> returnRoute = new HashMap<String,Object>();
+               Map<String, Object> returnRoute = new HashMap<>();
                for(Object returnVpn :returnList){
                        Map<String, Object> returnVpnInfo = (Map<String, Object>) returnVpn;
                    String accessTopoId = (String)returnVpnInfo.get("access-topology-id");
@@ -664,11 +665,11 @@ public class ServicePluginFactory {
        private Map<String, Object> getResourceParams(Execution execution, String resourceCustomizationUuid,
                        String serviceParameters) {
                List<String> resourceList = jsonUtil.StringArrayToList(execution,
-                               (String) JsonUtils.getJsonValue(serviceParameters, "resources"));
+                               JsonUtils.getJsonValue(serviceParameters, "resources"));
                // Get the right location str for resource. default is an empty array.
                String resourceInputsFromUui = "";
                for (String resource : resourceList) {
-                       String resCusUuid = (String) JsonUtils.getJsonValue(resource, "resourceCustomizationUuid");
+                       String resCusUuid = JsonUtils.getJsonValue(resource, "resourceCustomizationUuid");
                        if (resourceCustomizationUuid.equals(resCusUuid)) {
                                String resourceParameters = JsonUtils.getJsonValue(resource, "parameters");
                                resourceInputsFromUui = JsonUtils.getJsonValue(resourceParameters, "requestInputs");
@@ -738,14 +739,6 @@ public class ServicePluginFactory {
                                method = httpDelete;
                        }
 
-                       // now have no auth
-                       // String userCredentials =
-                       // SDNCAdapterProperties.getEncryptedProperty(Constants.SDNC_AUTH_PROP,
-                       // Constants.DEFAULT_SDNC_AUTH, Constants.ENCRYPTION_KEY);
-                       // String authorization = "Basic " +
-                       // DatatypeConverter.printBase64Binary(userCredentials.getBytes());
-                       // method.setHeader("Authorization", authorization);
-
                        httpResponse = client.execute(method);
                        String responseContent = null;
                        if (null != httpResponse && httpResponse.getEntity() != null) {
index eeda355..4b47ed6 100644 (file)
@@ -25,8 +25,8 @@ import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.onap.so.bpmn.infrastructure.pnf.delegate.AaiConnectionTestImpl.ID_WITHOUT_ENTRY;
-import static org.onap.so.bpmn.infrastructure.pnf.delegate.AaiConnectionTestImpl.ID_WITH_ENTRY;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.PnfManagementTestImpl.ID_WITHOUT_ENTRY;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.PnfManagementTestImpl.ID_WITH_ENTRY;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.AAI_CONTAINS_INFO_ABOUT_PNF;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
 
@@ -53,7 +53,7 @@ public class CheckAaiForCorrelationIdDelegateTest {
         @Before
         public void setUp() {
             delegate = new CheckAaiForCorrelationIdDelegate();
-            delegate.setAaiConnection(new AaiConnectionTestImpl());
+            delegate.setPnfManagement(new PnfManagementTestImpl());
         }
 
         @Test
@@ -101,7 +101,7 @@ public class CheckAaiForCorrelationIdDelegateTest {
         @Before
         public void setUp() {
             delegate = new CheckAaiForCorrelationIdDelegate();
-            delegate.setAaiConnection(new AaiConnectionThrowingException());
+            delegate.setPnfManagement(new PnfManagementThrowingException());
         }
 
         @Test
index c487125..9c5f8f3 100644 (file)
@@ -40,15 +40,15 @@ public class CreatePnfEntryInAaiDelegateTest {
         // given
         String pnfUuid = UUID.nameUUIDFromBytes("testUuid".getBytes()).toString();
         CreatePnfEntryInAaiDelegate delegate = new CreatePnfEntryInAaiDelegate();
-        AaiConnectionTestImpl aaiConnection = new AaiConnectionTestImpl();
-        delegate.setAaiConnection(aaiConnection);
+        PnfManagementTestImpl pnfManagementTest = new PnfManagementTestImpl();
+        delegate.setPnfManagement(pnfManagementTest);
         DelegateExecution execution = mock(DelegateExecution.class);
         given(execution.getVariable(eq(CORRELATION_ID))).willReturn("testCorrelationId");
         given(execution.getVariable(eq(PNF_UUID))).willReturn(pnfUuid);
         // when
         delegate.execute(execution);
         // then
-        Pnf createdEntry = aaiConnection.getCreated().get("testCorrelationId");
+        Pnf createdEntry = pnfManagementTest.getCreated().get("testCorrelationId");
         assertThat(createdEntry.getPnfId()).isEqualTo(pnfUuid);
         assertThat(createdEntry.getPnfName()).isEqualTo("testCorrelationId");
         assertThat(createdEntry.isInMaint()).isNull();
index 2dd3e23..2a78337 100644 (file)
@@ -29,8 +29,7 @@ import org.camunda.bpm.engine.delegate.BpmnError;
 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
 import org.junit.Before;
 import org.junit.Test;
-import org.onap.so.bpmn.infrastructure.pnf.aai.AaiConnectionImpl;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.onap.so.bpmn.infrastructure.pnf.management.PnfManagement;
 
 public class CreateRelationTest {
 
@@ -49,17 +48,17 @@ public class CreateRelationTest {
     @Test
     public void createRelationSuccessful() throws IOException {
         // given
-        AaiConnection aaiConnectionMock = mock(AaiConnectionImpl.class);
-        CreateRelation testedObject = new CreateRelation(aaiConnectionMock);
+        PnfManagement pnfManagementMock = mock(PnfManagement.class);
+        CreateRelation testedObject = new CreateRelation(pnfManagementMock);
         // when
         testedObject.execute(executionFake);
         // then
-        verify(aaiConnectionMock).createRelation(SERVICE_INSTANCE_ID, PNF_NAME);
+        verify(pnfManagementMock).createRelation(SERVICE_INSTANCE_ID, PNF_NAME);
     }
 
     @Test
     public void shouldThrowBpmnErrorWhenExceptionOccurred() {
-        CreateRelation testedObject = new CreateRelation(new AaiConnectionThrowingException());
+        CreateRelation testedObject = new CreateRelation(new PnfManagementThrowingException());
         executionFake.setVariable("testProcessKey", "testProcessKeyValue");
 
         assertThatThrownBy(() -> testedObject.execute(executionFake)).isInstanceOf(BpmnError.class);
index 1637b1a..80693d7 100644 (file)
 
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
-import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.SERVICE_INSTANCE_ID;
-import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.TIMEOUT_FOR_NOTIFICATION;
 
 import java.util.UUID;
+import org.apache.commons.lang3.StringUtils;
 import org.camunda.bpm.engine.delegate.BpmnError;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
@@ -36,7 +35,7 @@ import org.junit.Test;
 
 public class PnfCheckInputsTest {
 
-    private static final String DEFAULT_TIMEOUT = "P1D";
+    private static final String PNF_ENTRY_NOTIFICATION_TIMEOUT = "P1D";
     private static final String VALID_UUID = UUID.nameUUIDFromBytes("testUuid".getBytes()).toString();
     private static final String RESERVED_UUID = new UUID(0, 0).toString();
     private static final String DEFAULT_SERVICE_INSTANCE_ID = "da7d07d9-b71c-4128-809d-2ec01c807169";
@@ -51,50 +50,49 @@ public class PnfCheckInputsTest {
 
     @Test
     public void shouldThrowException_whenCorrelationIdNotSet() {
-        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
+        PnfCheckInputs testedObject = new PnfCheckInputs(PNF_ENTRY_NOTIFICATION_TIMEOUT);
         DelegateExecution execution = delegateExecutionBuilder.setCorrelationId(null).setPnfUuid(VALID_UUID).build();
         assertThatThrownBy(() -> testedObject.execute(execution)).isInstanceOf(BpmnError.class);
     }
 
     @Test
-    public void shouldThrowException_whenTimeoutIsEmptyStringAndDefaultIsNotDefined() {
+    public void shouldThrowException_whenPnfEntryNotificationTimeoutIsNull() {
         PnfCheckInputs testedObject = new PnfCheckInputs(null);
-        DelegateExecution execution = delegateExecutionBuilder.setTimeoutForNotification("").build();
+        DelegateExecution execution = delegateExecutionBuilder.build();
         assertThatThrownBy(() -> testedObject.execute(execution)).isInstanceOf(BpmnError.class);
     }
 
     @Test
-    public void shouldSetDefaultTimeout_whenTimeoutIsNotSet() {
-        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
-        DelegateExecution execution = delegateExecutionBuilder.setTimeoutForNotification(null).build();
-        testedObject.execute(execution);
-        assertThat(execution.getVariable(TIMEOUT_FOR_NOTIFICATION)).isEqualTo(DEFAULT_TIMEOUT);
+    public void shouldThrowException_whenPnfEntryNotificationTimeoutIsEmpty() {
+        PnfCheckInputs testedObject = new PnfCheckInputs(StringUtils.EMPTY);
+        DelegateExecution execution = delegateExecutionBuilder.build();
+        assertThatThrownBy(() -> testedObject.execute(execution)).isInstanceOf(BpmnError.class);
     }
 
     @Test
     public void shouldThrowException_whenPnfUuidIsNotSet() {
-        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
+        PnfCheckInputs testedObject = new PnfCheckInputs(PNF_ENTRY_NOTIFICATION_TIMEOUT);
         DelegateExecution execution = delegateExecutionBuilder.setPnfUuid(null).build();
         assertThatThrownBy(() -> testedObject.execute(execution)).isInstanceOf(BpmnError.class);
     }
 
     @Test
     public void shouldThrowException_whenPnfUuidIsEmptyString() {
-        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
-        DelegateExecution execution = delegateExecutionBuilder.setPnfUuid("").build();
+        PnfCheckInputs testedObject = new PnfCheckInputs(PNF_ENTRY_NOTIFICATION_TIMEOUT);
+        DelegateExecution execution = delegateExecutionBuilder.setPnfUuid(StringUtils.EMPTY).build();
         assertThatThrownBy(() -> testedObject.execute(execution)).isInstanceOf(BpmnError.class);
     }
 
     @Test
     public void shouldThrowException_whenPnfUuidIsReservedUuid() {
-        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
+        PnfCheckInputs testedObject = new PnfCheckInputs(PNF_ENTRY_NOTIFICATION_TIMEOUT);
         DelegateExecution execution = delegateExecutionBuilder.setPnfUuid(RESERVED_UUID).build();
         assertThatThrownBy(() -> testedObject.execute(execution)).isInstanceOf(BpmnError.class);
     }
 
     @Test
     public void shouldThrowException_whenServiceInstanceIdIsNotSet() {
-        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
+        PnfCheckInputs testedObject = new PnfCheckInputs(PNF_ENTRY_NOTIFICATION_TIMEOUT);
         DelegateExecution execution = delegateExecutionBuilder.setServiceInstanceId(null).build();
         assertThatThrownBy(() -> testedObject.execute(execution)).isInstanceOf(BpmnError.class);
     }
@@ -103,7 +101,6 @@ public class PnfCheckInputsTest {
         private String correlationId = DEFAULT_CORRELATION_ID;
         private String pnfUuid = VALID_UUID;
         private String serviceInstanceId = DEFAULT_SERVICE_INSTANCE_ID;
-        private String timeoutForNotification;
 
         public DelegateExecutionBuilder setCorrelationId(String correlationId) {
             this.correlationId = correlationId;
@@ -120,18 +117,12 @@ public class PnfCheckInputsTest {
             return this;
         }
 
-        public DelegateExecutionBuilder setTimeoutForNotification(String timeoutForNotification) {
-            this.timeoutForNotification = timeoutForNotification;
-            return this;
-        }
-
         public DelegateExecution build() {
             DelegateExecution execution = new DelegateExecutionFake();
             execution.setVariable("testProcessKey", "testProcessKeyValue");
             execution.setVariable(CORRELATION_ID, this.correlationId);
             execution.setVariable(PNF_UUID, this.pnfUuid);
             execution.setVariable(SERVICE_INSTANCE_ID, this.serviceInstanceId);
-            execution.setVariable(TIMEOUT_FOR_NOTIFICATION, this.timeoutForNotification);
             return execution;
         }
     }
@@ -21,7 +21,7 @@
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
 import org.onap.aai.domain.yang.Pnf;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.onap.so.bpmn.infrastructure.pnf.management.PnfManagement;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -29,7 +29,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 
-public class AaiConnectionTestImpl implements AaiConnection {
+public class PnfManagementTestImpl implements PnfManagement {
 
     public static final String ID_WITHOUT_ENTRY = "IdWithoutEntry";
     public static final String ID_WITH_ENTRY = "idWithEntryNoIp";
@@ -23,9 +23,9 @@ package org.onap.so.bpmn.infrastructure.pnf.delegate;
 import java.io.IOException;
 import java.util.Optional;
 import org.onap.aai.domain.yang.Pnf;
-import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.onap.so.bpmn.infrastructure.pnf.management.PnfManagement;
 
-public class AaiConnectionThrowingException implements AaiConnection {
+public class PnfManagementThrowingException implements PnfManagement {
 
     @Override
     public Optional<Pnf> getEntryFor(String correlationId) throws IOException {
index a265119..30d1b04 100644 (file)
@@ -27,20 +27,17 @@ import java.util.Optional;
 import javax.ws.rs.core.Response;
 
 import org.onap.so.client.ResponseExceptionMapper;
-import org.onap.so.client.RestClientSSL;
 import org.onap.so.client.graphinventory.GraphInventoryPatchConverter;
+import org.onap.so.client.graphinventory.GraphInventoryRestClient;
 import org.onap.so.client.policy.CommonObjectMapperProvider;
 import org.onap.so.utils.TargetEntity;
 
-public class AAIRestClient extends RestClientSSL {
+public class AAIRestClient extends GraphInventoryRestClient {
 
        private final AAIProperties aaiProperties;
-       private static final AAICommonObjectMapperProvider standardProvider = new AAICommonObjectMapperProvider();
 
-       private final GraphInventoryPatchConverter patchConverter = new GraphInventoryPatchConverter();
-       
        protected AAIRestClient(AAIProperties props, URI uri) {
-               super(props, Optional.of(uri));
+               super(props, uri);
                this.aaiProperties = props;
        }
 
@@ -67,27 +64,8 @@ public class AAIRestClient extends RestClientSSL {
                return Optional.of(new AAIClientResponseExceptionMapper());
        }
        
-       @Override
-       protected CommonObjectMapperProvider getCommonObjectMapperProvider() {
-               return standardProvider;
-       }
-
-       @Override
-       public Response patch(Object obj) {
-               return super.patch(convertToPatchFormat(obj));
-       }
-
-       @Override
-       public <T> T patch(Object obj, Class<T> resultClass) {
-               return super.patch(convertToPatchFormat(obj), resultClass);
-       }
-       
        protected GraphInventoryPatchConverter getPatchConverter() {
                return this.patchConverter;
        }
-       
-       protected String convertToPatchFormat(Object obj) {
-               return getPatchConverter().convertPatchFormat(obj);
-       }
 
 }
index 9b3f98b..5ce81ce 100644 (file)
@@ -26,7 +26,7 @@ import org.onap.so.client.graphinventory.entities.GraphInventoryResultWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class AAIResultWrapper extends GraphInventoryResultWrapper implements Serializable {
+public class AAIResultWrapper extends GraphInventoryResultWrapper<Relationships> implements Serializable {
 
        private static final long serialVersionUID = 5895841925807816737L;
        private final static transient Logger logger = LoggerFactory.getLogger(AAIResultWrapper.class);
@@ -38,4 +38,9 @@ public class AAIResultWrapper extends GraphInventoryResultWrapper implements Ser
        public AAIResultWrapper(Object aaiObject) {
                super(aaiObject, logger);
        }
+
+       @Override
+       protected Relationships createRelationships(String json) {
+               return new Relationships(json);
+       }
 }
index e907bc9..61a2f4b 100644 (file)
 
 package org.onap.so.client.aai.entities;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Predicate;
 
 import javax.ws.rs.core.UriBuilder;
 
-import org.onap.so.client.aai.AAICommonObjectMapperProvider;
 import org.onap.so.client.aai.AAIObjectType;
 import org.onap.so.client.aai.AAIResourcesClient;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 import org.onap.so.client.graphinventory.GraphInventoryObjectName;
-import org.onap.so.jsonpath.JsonPathUtil;
+import org.onap.so.client.graphinventory.entities.GraphInventoryRelationships;
 
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.base.CaseFormat;
+public class Relationships extends GraphInventoryRelationships<AAIResultWrapper, AAIResourceUri, AAIObjectType>{
 
-public class Relationships {
-
-       private final ObjectMapper mapper;
-       private Map<String, Object> map;
-       private final String jsonBody;
        public Relationships(String json) {
-               this.jsonBody = json;
-               this.mapper = new AAICommonObjectMapperProvider().getMapper();
-               try {
-                       this.map = mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
-               } catch (IOException e) {
-                       this.map = new HashMap<>();
-               }
-       }
-       
-       public List<AAIResultWrapper> getByType(GraphInventoryObjectName type) {
-               
-               return this.getAll(Optional.of(type));
-       }
-       
-       public List<AAIResultWrapper> getAll() {
-               
-               return this.getAll(Optional.empty());
-       }
-       
-       
-       public List<String> getRelatedLinks() {
-               return this.getRelatedLinks(Optional.empty());
-       }
-       
-       public List<String> getRelatedLinks(GraphInventoryObjectName type) {
-               return this.getRelatedLinks(Optional.of(type));
+               super(json);
        }
        
+       @Deprecated
+       /**
+        * Use getRelatedUris instead
+        * @return
+        */
        public List<AAIResourceUri> getRelatedAAIUris() {
-               return this.getRelatedAAIUris(x -> true);
+               return this.getRelatedUris();
        }
        
+       @Deprecated
+       /**
+        * Use getRelatedUris instead
+        * @return
+        */
        public List<AAIResourceUri> getRelatedAAIUris(GraphInventoryObjectName type) {
-               return this.getRelatedAAIUris(x -> type.typeName().equals(x));
-       }
-       protected List<AAIResourceUri> getRelatedAAIUris(Predicate<String> p) {
-               List<AAIResourceUri> result = new ArrayList<>();
-               if (map.containsKey("relationship")) {
-                       List<Map<String, Object>> relationships = (List<Map<String, Object>>)map.get("relationship");
-                       for (Map<String, Object> relationship : relationships) {
-                               final String relatedTo = (String)relationship.get("related-to");
-                               if (p.test(relatedTo)) {
-                                       AAIObjectType type;
-                                       type = AAIObjectType.fromTypeName(relatedTo);
-                                       final String relatedLink = (String)relationship.get("related-link");
-                                       
-                                       result.add(AAIUriFactory.createResourceFromExistingURI(type, UriBuilder.fromPath(relatedLink).build()));
-                               }
-                       }
-               }
-               return result;
+               return this.getRelatedUris(type);
        }
        
        
-       
-       protected List<AAIResultWrapper> getAll(final Optional<GraphInventoryObjectName> type) {
-               List<AAIResourceUri> relatedLinks;
-               if (type.isPresent()) {
-                       relatedLinks = this.getRelatedAAIUris(type.get());
-               } else {
-                       relatedLinks = this.getRelatedAAIUris();
-               }
-               ArrayList<AAIResultWrapper> result = new ArrayList<>();
-               for (AAIResourceUri link : relatedLinks) {
-                       result.add(this.get(link));
-               }
-               return result;
-       }
-       
        protected AAIResultWrapper get(AAIResourceUri uri) {
                return new AAIResourcesClient().get(uri);
                
        }
-       
-       protected List<String> getRelatedLinks(Optional<GraphInventoryObjectName> type) {
-               String matcher = "";
-               if (type.isPresent()) {
-                       matcher = "[?(@.related-to=='" + type.get() + "')]";
-               }
-               return JsonPathUtil.getInstance().locateResultList(this.jsonBody, String.format("$.relationship%s.related-link", matcher));
+
+       @Override
+       protected AAIResourceUri createUri(AAIObjectType type, String relatedLink) {
+               
+               return AAIUriFactory.createResourceFromExistingURI(type, UriBuilder.fromPath(relatedLink).build());
        }
-       
-       public String getJson() {
-               return this.jsonBody;
+
+       @Override
+       protected AAIObjectType fromTypeName(String name) {
+               return AAIObjectType.fromTypeName(name);
        }
 }
diff --git a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryRestClient.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryRestClient.java
new file mode 100644 (file)
index 0000000..10c0663
--- /dev/null
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.client.graphinventory;
+
+import java.net.URI;
+import java.util.Map;
+import java.util.Optional;
+
+import javax.ws.rs.core.Response;
+
+import org.onap.so.client.ResponseExceptionMapper;
+import org.onap.so.client.RestClientSSL;
+import org.onap.so.client.RestProperties;
+import org.onap.so.client.policy.CommonObjectMapperProvider;
+import org.onap.so.utils.TargetEntity;
+
+public abstract class GraphInventoryRestClient extends RestClientSSL {
+
+       protected static final GraphInventoryCommonObjectMapperProvider standardProvider = new GraphInventoryCommonObjectMapperProvider();
+
+       protected final GraphInventoryPatchConverter patchConverter = new GraphInventoryPatchConverter();
+       
+       protected GraphInventoryRestClient(RestProperties props, URI uri) {
+               super(props, Optional.of(uri));
+       }
+
+       @Override
+    public abstract TargetEntity getTargetEntity();
+
+       @Override
+       protected abstract void initializeHeaderMap(Map<String, String> headerMap);
+
+       @Override
+       protected abstract Optional<ResponseExceptionMapper> addResponseExceptionMapper();
+       
+       @Override
+       protected CommonObjectMapperProvider getCommonObjectMapperProvider() {
+               return standardProvider;
+       }
+
+       @Override
+       public Response patch(Object obj) {
+               return super.patch(convertToPatchFormat(obj));
+       }
+
+       @Override
+       public <T> T patch(Object obj, Class<T> resultClass) {
+               return super.patch(convertToPatchFormat(obj), resultClass);
+       }
+       
+       protected GraphInventoryPatchConverter getPatchConverter() {
+               return this.patchConverter;
+       }
+       
+       protected String convertToPatchFormat(Object obj) {
+               return getPatchConverter().convertPatchFormat(obj);
+       }
+
+}
diff --git a/common/src/main/java/org/onap/so/client/graphinventory/entities/GraphInventoryRelationships.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/GraphInventoryRelationships.java
new file mode 100644 (file)
index 0000000..759fad7
--- /dev/null
@@ -0,0 +1,137 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.client.graphinventory.entities;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Predicate;
+
+import org.onap.so.client.aai.AAICommonObjectMapperProvider;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.entities.AAIResultWrapper;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.client.graphinventory.GraphInventoryObjectName;
+import org.onap.so.client.graphinventory.GraphInventoryObjectType;
+import org.onap.so.client.graphinventory.entities.uri.GraphInventoryResourceUri;
+import org.onap.so.jsonpath.JsonPathUtil;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public abstract class GraphInventoryRelationships<Wrapper extends GraphInventoryResultWrapper, Uri extends GraphInventoryResourceUri, Type extends GraphInventoryObjectType> {
+
+       protected final ObjectMapper mapper;
+       protected Map<String, Object> map;
+       protected final String jsonBody;
+       
+       public GraphInventoryRelationships(String json) {
+               this.jsonBody = json;
+               this.mapper = new GraphInventoryCommonObjectMapperProvider().getMapper();
+               try {
+                       this.map = mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
+               } catch (IOException e) {
+                       this.map = new HashMap<>();
+               }
+       }
+       
+       public List<Wrapper> getByType(GraphInventoryObjectName type) {
+               
+               return this.getAll(Optional.of(type));
+       }
+       
+       public List<Wrapper> getAll() {
+               
+               return this.getAll(Optional.empty());
+       }
+       
+       
+       public List<String> getRelatedLinks() {
+               return this.getRelatedLinks(Optional.empty());
+       }
+       
+       public List<String> getRelatedLinks(GraphInventoryObjectName type) {
+               return this.getRelatedLinks(Optional.of(type));
+       }
+       
+       public List<Uri> getRelatedUris() {
+               return this.getRelatedUris(x -> true);
+       }
+       
+       public List<Uri> getRelatedUris(GraphInventoryObjectName type) {
+               return this.getRelatedUris(x -> type.typeName().equals(x));
+       }
+       protected List<Uri> getRelatedUris(Predicate<String> p) {
+               List<Uri> result = new ArrayList<>();
+               if (map.containsKey("relationship")) {
+                       List<Map<String, Object>> relationships = (List<Map<String, Object>>)map.get("relationship");
+                       for (Map<String, Object> relationship : relationships) {
+                               final String relatedTo = (String)relationship.get("related-to");
+                               if (p.test(relatedTo)) {
+                                       Type type;
+                                       type = fromTypeName(relatedTo);
+                                       final String relatedLink = (String)relationship.get("related-link");
+                                       
+                                       result.add(createUri(type, relatedLink));
+                               }
+                       }
+               }
+               return result;
+       }
+       
+       
+       
+       protected List<Wrapper> getAll(final Optional<GraphInventoryObjectName> type) {
+               List<Uri> relatedLinks;
+               if (type.isPresent()) {
+                       relatedLinks = this.getRelatedUris(type.get());
+               } else {
+                       relatedLinks = this.getRelatedUris();
+               }
+               ArrayList<Wrapper> result = new ArrayList<>();
+               for (Uri link : relatedLinks) {
+                       result.add(this.get(link));
+               }
+               return result;
+       }
+       
+       protected abstract Wrapper get(Uri uri);
+       
+       protected abstract Uri createUri(Type type, String relatedLink);
+       
+       protected abstract Type fromTypeName(String name);
+       
+       protected List<String> getRelatedLinks(Optional<GraphInventoryObjectName> type) {
+               String matcher = "";
+               if (type.isPresent()) {
+                       matcher = "[?(@.related-to=='" + type.get() + "')]";
+               }
+               return JsonPathUtil.getInstance().locateResultList(this.jsonBody, String.format("$.relationship%s.related-link", matcher));
+       }
+       
+       public String getJson() {
+               return this.jsonBody;
+       }
+}
index 2f71358..c5651c0 100644 (file)
@@ -28,17 +28,15 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 
-import org.onap.so.client.aai.AAICommonObjectMapperProvider;
-import org.onap.so.client.aai.entities.Relationships;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
 import org.onap.so.jsonpath.JsonPathUtil;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-public class GraphInventoryResultWrapper implements Serializable {
+public abstract class GraphInventoryResultWrapper<R extends GraphInventoryRelationships<?, ?, ?>> implements Serializable {
 
        private static final long serialVersionUID = 5895841925807816727L;
        protected final String jsonBody;
@@ -47,12 +45,12 @@ public class GraphInventoryResultWrapper implements Serializable {
        
        protected GraphInventoryResultWrapper(String json, Logger logger) {
                this.jsonBody = json;
-               this.mapper = new AAICommonObjectMapperProvider().getMapper();
+               this.mapper = new GraphInventoryCommonObjectMapperProvider().getMapper();
                this.logger = logger;
        }
        
        protected GraphInventoryResultWrapper(Object aaiObject, Logger logger) {
-               this.mapper = new AAICommonObjectMapperProvider().getMapper();
+               this.mapper = new GraphInventoryCommonObjectMapperProvider().getMapper();
                this.jsonBody = mapObjectToString(aaiObject);
                this.logger = logger;
        }
@@ -65,18 +63,19 @@ public class GraphInventoryResultWrapper implements Serializable {
                        return "{}";
                }
        }
-       public Optional<Relationships> getRelationships() {
+       public Optional<R> getRelationships() {
                final String path = "$.relationship-list";
                if (isEmpty()) {
                        return Optional.empty();
                }
                Optional<String> result = JsonPathUtil.getInstance().locateResult(jsonBody, path);
                if (result.isPresent()) {
-                       return Optional.of(new Relationships(result.get()));
+                       return Optional.of(createRelationships(result.get()));
                } else {
                        return Optional.empty();
                }
        }
+       protected abstract R createRelationships(String json);
        
        public String getJson() {
                if(jsonBody == null) {
index dc4179a..1b88441 100644 (file)
@@ -33,7 +33,6 @@ import java.util.Set;
 import javax.ws.rs.core.UriBuilder;
 
 import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.onap.so.client.aai.entities.uri.AAIUri;
 import org.onap.so.client.graphinventory.Format;
 import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals;
 import org.onap.so.client.graphinventory.GraphInventoryObjectType;
@@ -212,8 +211,8 @@ public class SimpleUri implements GraphInventoryResourceUri, Serializable {
        
        @Override
        public boolean equals(Object o) {
-               if (o instanceof AAIUri) {
-                       return this.build().equals(((AAIUri)o).build());
+               if (o instanceof GraphInventoryUri) {
+                       return this.build().equals(((GraphInventoryUri)o).build());
                }
                return false;
        }
index f316384..16dfa68 100644 (file)
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-data-jpa</artifactId>
+                       <exclusions>
+                       <exclusion>
+                           <groupId>org.apache.tomcat</groupId>
+                           <artifactId>tomcat-jdbc</artifactId>
+                        </exclusion>
+               </exclusions>
                </dependency>
                <dependency>
                        <groupId>commons-lang</groupId>
index cabee8e..a39d280 100644 (file)
-# will be used as entry in DB to say SITE OFF/ON for healthcheck
-
-server:
-    port: 8080
-    tomcat:
-        max-threads: 50
-ssl-enable: false
-
-apih-healthcheck-urn: /ecomp/mso/healthcheck,/ecomp/mso/homing/healthcheck,/ecomp/mso/infra/healthcheck,/asdc/healthcheck,/dbadapters/healthcheck,/ecomp/mso/catalog/v2/healthcheck
-jra-healthcheck-urn: /networks/rest/healthcheck,/adapters/rest/healthcheck,/vnfs/rest/healthcheck,/tenants/rest/healthcheck,/appc/rest/healthcheck,/workflows/messages/healthcheck
-camunda-healthcheck-urn: /mso/healthcheck
-
-apih-nodehealthcheck-urn: /ecomp/mso/infra/nodehealthcheck
-jra-nodehealthcheck-urn: /adapters/rest/nodehealthcheck
-camunda-nodehealthcheck-urn: /mso/nodehealthcheck
-
-
-
-mso:
-  health:
-    endpoints:
-      catalogdb: http://localhost:8800
-      sdnc: http://localhost:8400
-      openstack: http://localhost:8300
-      requestdb: http://localhost:8700
-      bpmn: http://localhost:8200
-      asdc: http://localhost:8400
-      requestdbattsvc: http://localhost:8600
-      
-  adapters:
-    requestDb:
-      auth: Basic YnBlbDptc28tZGItMTUwNyE=
-      endpoint: http://localhost:8081
-  logPath: logs
-  site-name: mtanj
-  catalog:
-    db:
-      spring:
-        endpoint: "http://localhost:8080"
-  db:
-    auth: Basic YnBlbDptc28tZGItMTUwNyE=
-  config: 
-    path: /src/main/resources/
-  infra:
-    default:
-      alacarte:
-        orchestrationUri: /mso/async/services/ALaCarteOrchestrator
-        recipeTimeout: 180
-        testApi: VNF_API
-      service:
-        macro:
-          default:
-            testApi: GR_API
-  apih:
-    homing:
-      sdna:
-        url: http://localhost:8089/
-        password: 4E0BDC08EE8EDC0572ABBE9FD2D59B62DB725A00B8469E39393D6C86D64284C5D34A57D56F7B58C375316F
-  camundaURL: http://localhost:8089/
-  camundaAuth: E8E19DD16CC90D2E458E8FF9A884CC0452F8F3EB8E321F96038DE38D5C1B0B02DFAE00B88E2CF6E2A4101AB2C011FC161212EE
-  async:
-    core-pool-size: 50
-    max-pool-size: 50
-    queue-capacity: 500
-  sdc:
-    client:
-      auth: 97FF88AB352DA16E00DDD81E3876431DEF8744465DACA489EB3B3BE1F10F63EDA1715E626D0A4827A3E19CD88421BF
-    activate:
-      instanceid: test
-      userid: cs0008
-    endpoint: http://localhost:28090
-  msoKey: 07a7159d3bf51a0e53be7a8f89699be7
-  tenant:
-    isolation:
-      retry:
-        count: 3
-  aai:
-    endpoint: http://localhost:28090
-    auth: 5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C
-  grm:
-    endpoint: http://localhost:28090
-    username: gmruser
-    password: test
-  so:
-    operational-environment:
-      dmaap:
-        username: testuser
-        password: VjR5NDcxSzA=
-        host: http://localhost:28090
-      publisher:
-        topic: com.att.ecomp.mso.operationalEnvironmentEvent
-
-# controls what actions the infra API (APIH) allows sent in on REST request
-vnf:
-  v1:
-    ApiAllowableActions: 
-  v2:
-    ApiAllowableActions: 
-  v3:
-    ApiAllowableActions: 
-  
-network:
-  v1:
-    ApiAllowableActions: 
-  v2:
-    ApiAllowableActions: 
-  v3:
-    ApiAllowableActions: 
-  
-volume:
-  v1:
-    ApiAllowableActions: 
-  v2:
-    ApiAllowableActions: 
-  v3:
-    ApiAllowableActions: 
-
-# H2
-spring:
-  datasource:
-    jdbc-url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
-    username: sa
-    password: sa
-    driver-class-name: org.h2.Driver
-    intialize: true
-  h2:
-    console:
-      enabled: true
-      path: /h2
-
-  jpa:
-      show-sql: true
-      hibernate:
-        dialect: org.hibernate.dialect.H2Dialect
-        ddl-auto: validate
-        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-        enable_lazy_load_no_trans: true
-  jersey:
-    type: filter
-  security:
-    usercredentials:
-    -  
-      username: sitecontrol
-      password: '$2a$12$VBUF.qBmeK1FNyO2MqTpD.P2M1tvlesZlhCkAjjHvF9hmYNVdMDmu'
-      role: SiteControl-Client 
-    -  
-      username: gui
-      password: '$2a$12$9Y4daXavh.oX5fz6t/e7TuCdj7EKW5B5ibqq425fN3/xpp0/Fhyti'
-      role: GUI-Client  
-    -  
-      username: infraportal
-      password: '$2a$12$IpUEhQijWTNbq0fGYVkA9upZrDvdIK6QfblIaKAiwi0vBQRE.C6Ri'
-      role: InfraPortal-Client        
-    -  
-      username: bpel
-      password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'
-      role: BPEL-Client   
-    -  
-      username: mso_admin
-      password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'
-      role: ACTUATOR      
-request:
-  datasource:
-    jdbc-url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
-    username: sa
-    password: sa
-    driver-class-name: org.h2.Driver
-    intialize: true 
-
-#Actuator
-management: 
-  context-path: /manage
-
-org:
-  onap:
-    so:
-      adapters:
-        network:
-          encryptionKey: aa3871669d893c7fb8abbcda31b88b4f
+# will be used as entry in DB to say SITE OFF/ON for healthcheck\r
+\r
+server:\r
+    port: 8080\r
+    tomcat:\r
+        max-threads: 50\r
+ssl-enable: false\r
+\r
+apih-healthcheck-urn: /ecomp/mso/healthcheck,/ecomp/mso/homing/healthcheck,/ecomp/mso/infra/healthcheck,/asdc/healthcheck,/dbadapters/healthcheck,/ecomp/mso/catalog/v2/healthcheck\r
+jra-healthcheck-urn: /networks/rest/healthcheck,/adapters/rest/healthcheck,/vnfs/rest/healthcheck,/tenants/rest/healthcheck,/appc/rest/healthcheck,/workflows/messages/healthcheck\r
+camunda-healthcheck-urn: /mso/healthcheck\r
+\r
+apih-nodehealthcheck-urn: /ecomp/mso/infra/nodehealthcheck\r
+jra-nodehealthcheck-urn: /adapters/rest/nodehealthcheck\r
+camunda-nodehealthcheck-urn: /mso/nodehealthcheck\r
+\r
+\r
+\r
+mso:\r
+  health:\r
+    endpoints:\r
+      catalogdb: http://localhost:8800\r
+      sdnc: http://localhost:8400\r
+      openstack: http://localhost:8300\r
+      requestdb: http://localhost:8700\r
+      bpmn: http://localhost:8200\r
+      asdc: http://localhost:8400\r
+      requestdbattsvc: http://localhost:8600\r
+      \r
+  adapters:\r
+    requestDb:\r
+      auth: Basic YnBlbDptc28tZGItMTUwNyE=\r
+      endpoint: http://localhost:8081\r
+  logPath: logs\r
+  site-name: mtanj\r
+  catalog:\r
+    db:\r
+      spring:\r
+        endpoint: "http://localhost:8080"\r
+  db:\r
+    auth: Basic YnBlbDptc28tZGItMTUwNyE=\r
+  config: \r
+    path: /src/main/resources/\r
+  infra:\r
+    default:\r
+      alacarte:\r
+        orchestrationUri: /mso/async/services/ALaCarteOrchestrator\r
+        recipeTimeout: 180\r
+        testApi: VNF_API\r
+      service:\r
+        macro:\r
+          default:\r
+            testApi: GR_API\r
+  apih:\r
+    homing:\r
+      sdna:\r
+        url: http://localhost:8089/\r
+        password: 4E0BDC08EE8EDC0572ABBE9FD2D59B62DB725A00B8469E39393D6C86D64284C5D34A57D56F7B58C375316F\r
+  camundaURL: http://localhost:8089/\r
+  camundaAuth: E8E19DD16CC90D2E458E8FF9A884CC0452F8F3EB8E321F96038DE38D5C1B0B02DFAE00B88E2CF6E2A4101AB2C011FC161212EE\r
+  async:\r
+    core-pool-size: 50\r
+    max-pool-size: 50\r
+    queue-capacity: 500\r
+  sdc:\r
+    client:\r
+      auth: 97FF88AB352DA16E00DDD81E3876431DEF8744465DACA489EB3B3BE1F10F63EDA1715E626D0A4827A3E19CD88421BF\r
+    activate:\r
+      instanceid: test\r
+      userid: cs0008\r
+    endpoint: http://localhost:28090\r
+  msoKey: 07a7159d3bf51a0e53be7a8f89699be7\r
+  tenant:\r
+    isolation:\r
+      retry:\r
+        count: 3\r
+  aai:\r
+    endpoint: http://localhost:28090\r
+    auth: 5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C\r
+  grm:\r
+    endpoint: http://localhost:28090\r
+    username: gmruser\r
+    password: test\r
+  so:\r
+    operational-environment:\r
+      dmaap:\r
+        username: testuser\r
+        password: VjR5NDcxSzA=\r
+        host: http://localhost:28090\r
+      publisher:\r
+        topic: com.att.ecomp.mso.operationalEnvironmentEvent\r
+\r
+# controls what actions the infra API (APIH) allows sent in on REST request\r
+vnf:\r
+  v1:\r
+    ApiAllowableActions: \r
+  v2:\r
+    ApiAllowableActions: \r
+  v3:\r
+    ApiAllowableActions: \r
+  \r
+network:\r
+  v1:\r
+    ApiAllowableActions: \r
+  v2:\r
+    ApiAllowableActions: \r
+  v3:\r
+    ApiAllowableActions: \r
+  \r
+volume:\r
+  v1:\r
+    ApiAllowableActions: \r
+  v2:\r
+    ApiAllowableActions: \r
+  v3:\r
+    ApiAllowableActions: \r
+\r
+# H2\r
+spring:\r
+  datasource:\r
+    url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE\r
+    username: sa\r
+    password: sa\r
+    driver-class-name: org.h2.Driver\r
+    intialize: true\r
+  h2:\r
+    console:\r
+      enabled: true\r
+      path: /h2\r
+\r
+  jpa:\r
+      show-sql: true\r
+      hibernate:\r
+        dialect: org.hibernate.dialect.H2Dialect\r
+        ddl-auto: validate\r
+        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy\r
+        enable_lazy_load_no_trans: true\r
+  jersey:\r
+    type: filter\r
+  security:\r
+    usercredentials:\r
+    -  \r
+      username: sitecontrol\r
+      password: '$2a$12$VBUF.qBmeK1FNyO2MqTpD.P2M1tvlesZlhCkAjjHvF9hmYNVdMDmu'\r
+      role: SiteControl-Client \r
+    -  \r
+      username: gui\r
+      password: '$2a$12$9Y4daXavh.oX5fz6t/e7TuCdj7EKW5B5ibqq425fN3/xpp0/Fhyti'\r
+      role: GUI-Client  \r
+    -  \r
+      username: infraportal\r
+      password: '$2a$12$IpUEhQijWTNbq0fGYVkA9upZrDvdIK6QfblIaKAiwi0vBQRE.C6Ri'\r
+      role: InfraPortal-Client        \r
+    -  \r
+      username: bpel\r
+      password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'\r
+      role: BPEL-Client   \r
+    -  \r
+      username: mso_admin\r
+      password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'\r
+      role: ACTUATOR      \r
+request:\r
+  datasource:\r
+    url: jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE\r
+    username: sa\r
+    password: sa\r
+    driver-class-name: org.h2.Driver\r
+    intialize: true \r
+\r
+#Actuator\r
+management: \r
+  context-path: /manage\r
+\r
+org:\r
+  onap:\r
+    so:\r
+      adapters:\r
+        network:\r
+          encryptionKey: aa3871669d893c7fb8abbcda31b88b4f\r
index 41e024f..76e2caa 100644 (file)
@@ -29,15 +29,10 @@ mso:
                 
 spring:
   datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
+    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
     driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2: 
-      initial-size: 5
-      max-total: 20 
-      validation-query: select 1
-      test-on-borrow: true 
 
   jpa:
       show-sql: true
@@ -51,15 +46,10 @@ spring:
                        
 request:
   datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
+    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver  
-    dbcp2: 
-      initial-size: 5
-      max-total: 20 
-      validation-query: select 1
-      test-on-borrow: true
+    driver-class-name: org.mariadb.jdbc.Driver
 
 #Actuator
 management:
index 4826c87..88cfd77 100644 (file)
@@ -84,7 +84,7 @@ mso:
 
 spring:
   datasource:
-    jdbc-url: jdbc:mariadb://localhost:3307/catalogdb
+    url: jdbc:mariadb://localhost:3307/catalogdb
     username: root
     password: password
     driver-class-name: org.mariadb.jdbc.Driver    
@@ -107,7 +107,7 @@ spring:
       role: InfraPortal-Client
 request:
   datasource:
-    jdbc-url: jdbc:mariadb://localhost:3307/requestdb
+    url: jdbc:mariadb://localhost:3307/requestdb
     username: root
     password: password
     driver-class-name: org.mariadb.jdbc.Driver
diff --git a/pom.xml b/pom.xml
index 1d5d53d..bd18e7d 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,6 @@
                <module>bpmn</module>
                <module>cloudify-client</module>
                <module>cxf-logging</module>
-                <module>so-monitoring</module>
                <module>packages</module>
        </modules>
        <properties>