diff options
-rwxr-xr-x | deliveries/pom.xml | 214 | ||||
-rwxr-xr-x | epsdk-app-onap/pom.xml | 64 | ||||
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/aai/PombaClientImpl.java | 11 | ||||
-rw-r--r-- | vid-app-common/src/main/webapp/WEB-INF/conf/features.properties | 36 | ||||
-rw-r--r-- | vid-app-common/src/test/java/org/onap/vid/aai/PombaClientImplTest.java | 93 | ||||
-rw-r--r-- | vid-app-common/src/test/resources/pomba_request.json | 18 |
6 files changed, 270 insertions, 166 deletions
diff --git a/deliveries/pom.xml b/deliveries/pom.xml index 1b89e1e5c..13db1c7ca 100755 --- a/deliveries/pom.xml +++ b/deliveries/pom.xml @@ -1,104 +1,110 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.onap.vid</groupId>
- <artifactId>vid-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
- </parent>
-
- <packaging>pom</packaging>
- <artifactId>vid-deliveries</artifactId>
-
- <name>VID Deliveries</name>
- <description>ONAP VID Deliveries</description>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <docker.push.registry>${docker_registry}</docker.push.registry>
- <docker.verbose>true</docker.verbose>
- </properties>
-
- <profiles>
-
- <profile>
- <id>docker-proxy</id>
- <!-- activate profile if environment variable `http_proxy` is set -->
- <activation>
- <property>
- <name>env.http_proxy</name>
- </property>
- </activation>
- <properties>
- <docker.buildArg.http_proxy>${env.http_proxy}</docker.buildArg.http_proxy>
- </properties>
- </profile>
-
- </profiles>
-
- <build>
- <finalName>${project.artifactId}-${project.version}</finalName>
- <plugins>
- <plugin>
- <groupId>io.fabric8</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>0.28.0</version>
-
- <configuration>
- <verbose>true</verbose>
- <apiVersion>1.23</apiVersion>
- <images>
- <image>
- <name>onap/vid:${project.version}</name>
- <build>
- <cleanup>remove</cleanup>
- <dockerFileDir>docker-files</dockerFileDir>
- <assembly>
- <basedir>/</basedir>
- <user>vidadmin:vidadmin:vidadmin</user>
- <descriptor>assembly/assembly-for-plugin.xml</descriptor>
- </assembly>
- <tags>
- <tag>4.0-STAGING-latest</tag>
- <tag>latest</tag>
- </tags>
-
- </build>
- </image>
- </images>
- </configuration>
-
- <executions>
- <execution>
- <id>generate-image</id>
- <phase>package</phase>
- <goals>
- <goal>build</goal>
- </goals>
- </execution>
-
- <execution>
- <id>push-image</id>
- <phase>deploy</phase>
- <goals>
- <goal>build</goal>
- <goal>push</goal>
- </goals>
- </execution>
- </executions>
-
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <version>2.8</version>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.onap.vid</groupId> + <artifactId>vid-parent</artifactId> + <version>4.0.0-SNAPSHOT</version> + </parent> + + <packaging>pom</packaging> + <artifactId>vid-deliveries</artifactId> + + <name>VID Deliveries</name> + <description>ONAP VID Deliveries</description> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <docker.push.registry>${docker_registry}</docker.push.registry> + <docker.verbose>true</docker.verbose> + <docker.tag>${project.version}-${maven.build.timestamp}</docker.tag> + <docker.latest.tag>${project.version}-latest</docker.latest.tag> + + <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> + </properties> + + <profiles> + + <profile> + <id>docker-proxy</id> + <!-- activate profile if environment variable `http_proxy` is set --> + <activation> + <property> + <name>env.http_proxy</name> + </property> + </activation> + <properties> + <docker.buildArg.http_proxy>${env.http_proxy}</docker.buildArg.http_proxy> + </properties> + </profile> + + </profiles> + + <build> + <finalName>${project.artifactId}-${project.version}</finalName> + <plugins> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>0.28.0</version> + + <configuration> + <verbose>true</verbose> + <apiVersion>1.23</apiVersion> + <images> + <image> + <name>onap/vid:${project.version}</name> + <build> + <cleanup>remove</cleanup> + <dockerFileDir>docker-files</dockerFileDir> + <assembly> + <basedir>/</basedir> + <user>vidadmin:vidadmin:vidadmin</user> + <descriptor>assembly/assembly-for-plugin.xml</descriptor> + </assembly> + <tags> + <tag>4.0-STAGING-latest</tag> + <tag>latest</tag> + <tag>${docker.tag}</tag> + <tag>${docker.latest.tag}</tag> + </tags> + + </build> + </image> + </images> + </configuration> + + <executions> + <execution> + <id>generate-image</id> + <phase>package</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + + <execution> + <id>push-image</id> + <phase>deploy</phase> + <goals> + <goal>build</goal> + <goal>push</goal> + </goals> + </execution> + </executions> + + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <version>2.8</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/epsdk-app-onap/pom.xml b/epsdk-app-onap/pom.xml index f2441b357..bf09f32dc 100755 --- a/epsdk-app-onap/pom.xml +++ b/epsdk-app-onap/pom.xml @@ -18,6 +18,7 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <epsdk.version>2.4.0</epsdk.version> + <jackson.version>2.9.7</jackson.version> <springframework.version>4.2.9.RELEASE</springframework.version> <hibernate.version>4.3.11.Final</hibernate.version> <!-- Skip assembling the zip; assemble via mvn -Dskipassembly=false .. --> @@ -205,9 +206,9 @@ </dependencies> </plugin> <plugin> - <groupId>org.sonarsource.scanner.maven</groupId> - <artifactId>sonar-maven-plugin</artifactId> - <version>3.3.0.603</version> + <groupId>org.sonarsource.scanner.maven</groupId> + <artifactId>sonar-maven-plugin</artifactId> + <version>3.3.0.603</version> </plugin> <plugin> <groupId>org.jacoco</groupId> @@ -265,24 +266,12 @@ <artifactId>epsdk-app-common</artifactId> <version>${epsdk.version}</version> <type>jar</type> - <exclusions> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>org.onap.vid</groupId> <artifactId>vid-app-common</artifactId> <version>${project.version}</version> <type>war</type> - <exclusions> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>org.onap.vid</groupId> @@ -296,12 +285,6 @@ <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-core</artifactId> <version>${epsdk.version}</version> - <exclusions> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>org.onap.portal.sdk</groupId> @@ -309,10 +292,6 @@ <version>${epsdk.version}</version> <exclusions> <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - <exclusion> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> </exclusion> @@ -322,12 +301,6 @@ <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-workflow</artifactId> <version>${epsdk.version}</version> - <exclusions> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>com.att.eelf</groupId> @@ -338,23 +311,34 @@ <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> - <version>2.6.3</version> + <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> - <version>2.8.6</version> + <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>2.6.7.1</version> - <exclusions> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - </exclusions> + <version>${jackson.version}</version> + </dependency> + <!-- jackson-dataformat-* are to override elasticsearch-2.2.0 deps hell --> + <!-- (elasticsearch is an epsdk-app-common-2.4.0 dep) --> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-smile</artifactId> + <version>${jackson.version}</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-yaml</artifactId> + <version>${jackson.version}</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-cbor</artifactId> + <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.mchange</groupId> diff --git a/vid-app-common/src/main/java/org/onap/vid/aai/PombaClientImpl.java b/vid-app-common/src/main/java/org/onap/vid/aai/PombaClientImpl.java index 000628d8a..15fda829c 100644 --- a/vid-app-common/src/main/java/org/onap/vid/aai/PombaClientImpl.java +++ b/vid-app-common/src/main/java/org/onap/vid/aai/PombaClientImpl.java @@ -1,13 +1,13 @@ + package org.onap.vid.aai; import com.fasterxml.jackson.databind.ObjectMapper; +import javax.servlet.ServletContext; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.onap.portalsdk.core.util.SystemProperties; import org.onap.vid.model.PombaInstance.PombaRequest; +import org.onap.vid.utils.SystemPropertiesWrapper; import org.springframework.beans.factory.annotation.Autowired; -import javax.servlet.ServletContext; - public class PombaClientImpl implements PombaClientInterface { protected String fromAppId = "VidAaiController"; @@ -19,13 +19,14 @@ public class PombaClientImpl implements PombaClientInterface { @Autowired PombaRestInterface pombaRestInterface; + @Autowired + SystemPropertiesWrapper systemPropertiesWrapper; @Override public void verify(PombaRequest request) { String methodName = "doAaiPost"; logger.debug(EELFLoggerDelegate.debugLogger, methodName + " start"); - String uri = SystemProperties.getProperty("pomba.server.url"); - + String uri = systemPropertiesWrapper.getProperty("pomba.server.url"); try { pombaRestInterface.RestPost(fromAppId, uri, new ObjectMapper().writeValueAsString(request)); diff --git a/vid-app-common/src/main/webapp/WEB-INF/conf/features.properties b/vid-app-common/src/main/webapp/WEB-INF/conf/features.properties index 87b2d6014..36f607f62 100644 --- a/vid-app-common/src/main/webapp/WEB-INF/conf/features.properties +++ b/vid-app-common/src/main/webapp/WEB-INF/conf/features.properties @@ -12,34 +12,36 @@ FLAG_PNP_INSTANTIATION = true -FLAG_ASYNC_INSTANTIATION = true -FLAG_ASYNC_JOBS = true CREATE_INSTANCE_TEST = false -EMPTY_DRAWING_BOARD_TEST = false FLAG_ADD_MSO_TESTAPI_FIELD = true FLAG_UNASSIGN_SERVICE = true -FLAG_COLLECTION_RESOURCE_SUPPORT = true -FLAG_NETWORK_TO_ASYNC_INSTANTIATION = false FLAG_SERVICE_MODEL_CACHE = true FLAG_SHOW_ASSIGNMENTS = true FLAG_SHOW_VERIFY_SERVICE = false -FLAG_DUPLICATE_VNF = true -FLAG_DEFAULT_VNF = true -FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD = true FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS = true -FLAG_A_LA_CARTE_AUDIT_INFO=true -FLAG_5G_IN_NEW_INSTANTIATION_UI = true FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS = true -FLAG_ASYNC_ALACARTE_VNF = true -FLAG_ASYNC_ALACARTE_VFMODULE= true -FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF = true -FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI=false FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST=true FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY=true FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE = true FLAG_1810_AAI_LOCAL_CACHE = true -FLAG_1902_NEW_VIEW_EDIT=false FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER = false -FLAG_SUPPLEMENTARY_FILE = true -FLAG_1902_VNF_GROUPING = true +# Modern UI (Drawing-Board; View/Edit) +# - - - - - - - - - - - - - - - - - - +FLAG_COLLECTION_RESOURCE_SUPPORT = false +FLAG_ASYNC_INSTANTIATION = false +FLAG_ASYNC_JOBS = false +EMPTY_DRAWING_BOARD_TEST = false +FLAG_NETWORK_TO_ASYNC_INSTANTIATION = false +FLAG_DUPLICATE_VNF = false +FLAG_DEFAULT_VNF = false +FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD = false +FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF = false +FLAG_A_LA_CARTE_AUDIT_INFO = false +FLAG_5G_IN_NEW_INSTANTIATION_UI = false +FLAG_ASYNC_ALACARTE_VNF = false +FLAG_ASYNC_ALACARTE_VFMODULE = false +FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI = false +FLAG_SUPPLEMENTARY_FILE = false +FLAG_1902_NEW_VIEW_EDIT=false +FLAG_1902_VNF_GROUPING = false diff --git a/vid-app-common/src/test/java/org/onap/vid/aai/PombaClientImplTest.java b/vid-app-common/src/test/java/org/onap/vid/aai/PombaClientImplTest.java new file mode 100644 index 000000000..b1c4139b7 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/aai/PombaClientImplTest.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright 2019 Nokia + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.vid.aai; + +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.then; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import java.io.IOException; +import java.net.URL; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.vid.model.PombaInstance.PombaRequest; +import org.onap.vid.model.PombaInstance.ServiceInstance; +import org.onap.vid.utils.SystemPropertiesWrapper; + +@RunWith(MockitoJUnitRunner.class) +public class PombaClientImplTest { + + @Mock + private SystemPropertiesWrapper systemPropertiesWrapper; + @Mock + private PombaRestInterface pombaRestInterface; + @InjectMocks + private PombaClientImpl pombaClient; + + @Test + public void should_doHttpPost_withGivenPombaRequest() throws IOException { + //Given + String expectedUrl = "http://localhost/dummyUrl"; + given(systemPropertiesWrapper.getProperty("pomba.server.url")).willReturn(expectedUrl); + String expectedPayload = readExpectedPombaJsonRequest(); + PombaRequest pombaRequest = createPombaRequest(); + + //When + pombaClient.verify(pombaRequest); + + //Then + then(pombaRestInterface).should().RestPost("VidAaiController", expectedUrl, expectedPayload); + } + + private String readExpectedPombaJsonRequest() throws IOException { + URL url = PombaClientImplTest.class.getClassLoader().getResource("pomba_request.json"); + PombaRequest expectedPombaRequest = new ObjectMapper().readValue(url, PombaRequest.class); + return new ObjectMapper().writeValueAsString(expectedPombaRequest); + } + + private PombaRequest createPombaRequest() { + ServiceInstance serviceInstance1 = createServiceInstance("serviceType1", "serviceInstanceId1", "customerId1", + "modelVersion1", "modelInvariantId1"); + ServiceInstance serviceInstance2 = createServiceInstance("serviceType2", "serviceInstanceId2", "customerId2", + "modelVersion2", "modelInvariantId2"); + + PombaRequest pombaRequest = new PombaRequest(); + pombaRequest.serviceInstanceList = Lists.newArrayList(serviceInstance1, serviceInstance2); + return pombaRequest; + } + + private ServiceInstance createServiceInstance(String serviceType, String serviceInstanceId, String customerId, + String modelVersionId, String modelInvariantId) { + ServiceInstance serviceInstance = new ServiceInstance(); + serviceInstance.serviceType = serviceType; + serviceInstance.serviceInstanceId = serviceInstanceId; + serviceInstance.customerId = customerId; + serviceInstance.modelInvariantId = modelInvariantId; + serviceInstance.modelVersionId = modelVersionId; + return serviceInstance; + } + +}
\ No newline at end of file diff --git a/vid-app-common/src/test/resources/pomba_request.json b/vid-app-common/src/test/resources/pomba_request.json new file mode 100644 index 000000000..3d873bff8 --- /dev/null +++ b/vid-app-common/src/test/resources/pomba_request.json @@ -0,0 +1,18 @@ +{ + "serviceInstanceList": [ + { + "serviceInstanceId": "serviceInstanceId1", + "modelVersionId": "modelVersion1", + "modelInvariantId": "modelInvariantId1", + "customerId": "customerId1", + "serviceType": "serviceType1" + }, + { + "serviceInstanceId": "serviceInstanceId2", + "modelVersionId": "modelVersion2", + "modelInvariantId": "modelInvariantId2", + "customerId": "customerId2", + "serviceType": "serviceType2" + } + ] +}
\ No newline at end of file |