summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controlloop/build/docker-cl254
-rw-r--r--controlloop/common/msb/pom.xml76
-rw-r--r--controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceException.java42
-rw-r--r--controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceFactory.java125
-rw-r--r--controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceManager.java60
-rw-r--r--controlloop/common/msb/src/main/java/org/onap/policy/msb/client/Node.java55
-rw-r--r--controlloop/common/msb/src/main/resources/msb.policy.properties22
-rw-r--r--controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceExceptionTest.java31
-rw-r--r--controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceManagerTest.java173
-rw-r--r--controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java63
-rw-r--r--controlloop/common/msb/src/test/resources/msbPropertyFile.properties21
-rw-r--r--controlloop/common/pom.xml1
-rw-r--r--controlloop/packages/basex-controlloop/pom.xml2
-rw-r--r--controlloop/packages/basex-controlloop/src/assembly/zip.xml2
-rw-r--r--controlloop/packages/basex-controlloop/src/main/resources/controlloop.version (renamed from controlloop/packages/basex-controlloop/src/main/resources/apps-controlloop-version)0
-rw-r--r--controlloop/packages/docker-controlloop/pom.xml113
-rw-r--r--controlloop/packages/docker-controlloop/src/main/docker/Dockerfile7
-rw-r--r--controlloop/packages/pom.xml3
18 files changed, 378 insertions, 672 deletions
diff --git a/controlloop/build/docker-cl b/controlloop/build/docker-cl
new file mode 100644
index 000000000..659c2bad9
--- /dev/null
+++ b/controlloop/build/docker-cl
@@ -0,0 +1,254 @@
+#!/usr/bin/env bash
+
+# ########################################################################
+#
+# Copyright 2019 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.
+# ########################################################################
+
+function usage {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- $0 --"
+ set -x
+ fi
+
+ echo
+ echo "SYNTAX:"
+ echo -e "\t$(basename "$0") "
+ echo -e "\t\t[--help|-h] [--build|-b <repo:tag>] [--push|-p <repo:tag>]"
+ echo -e "\t\t[--verify|-v] [--merge|-m] [--release|-r] "
+ echo -e "\t\t[--run <volume-full-path>] [--cmd <volume-full-path> <cmd>]"
+ echo
+ echo
+}
+
+function build {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} $* --"
+ set -x
+ fi
+
+ local tag tags
+
+ for tag in "$@"; do
+ tags="${tags} --tag ${tag}"
+ done
+
+ (set -x; docker build ${BUILD_ARGS} ${tags} ${IMAGE_PATH})
+
+ if [[ $? != 0 ]]; then
+ echo -e "\nERROR: docker build\n"
+ return 1
+ fi
+
+ docker image ls | egrep "TAG|${IMAGE}"
+
+ return 0
+}
+
+function push {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} $* --"
+ set -x
+ fi
+
+ local tag="${1}"
+
+ if [[ -z ${tag} ]]; then
+ echo -e "\nERROR: no <repo:tag> provided\n"
+ return 1
+ fi
+
+ (set -x; docker push ${tag})
+
+ if [[ $? != 0 ]]; then
+ echo -e "\nERROR: docker push\n"
+ return 2
+ fi
+
+ return 0
+}
+
+function release {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ build ${RELEASE_BUILD_TAGS} && push ${RELEASE_PUSH_TAGS}
+ return $?
+}
+
+function merge {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ build ${MERGE_BUILD_TAGS} && push ${MERGE_PUSH_TAGS}
+ return $?
+}
+
+function verify {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ build ${VERIFY_BUILD_TAGS}
+
+ return $?
+}
+
+function run {
+ local debugEnv
+
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} $* --"
+ set -x
+ debugEnv='-e "DEBUG=y"'
+ fi
+
+ local volume="$1"
+ local cmd="$2"
+
+ if [[ ! -d ${volume} ]]; then
+ echo -e "\nERROR: an absolute path to a volume must be provided: ${volume}\n"
+ return 1
+ fi
+
+ (
+ set -x
+ docker run --rm ${debugEnv} -it -v "${volume}":/tmp/policy-install/config -p 9696:9696 \
+ --name pdpd-cl onap/policy-pdpd-cl ${cmd}
+ )
+
+ return $?
+}
+
+(
+if [[ ${DEBUG} == y ]]; then
+ echo "-- $0 $* --"
+ set -x
+fi
+
+VERSION_PATH="controlloop/packages/docker-controlloop/target/version"
+if [[ ! -f "${VERSION_PATH}" ]]; then
+ cd "$(dirname "$0")"/../..
+ if [[ ! -f "${VERSION_PATH}" ]]; then
+ echo -e "\nERROR: ${VERSION_PATH} cannot be found\n"
+ usage
+ exit 1
+ fi
+fi
+
+DOCKER_REPOSITORY="nexus3.onap.org:10003"
+IMAGE=policy-pdpd-cl
+IMAGE_PATH="controlloop/packages/docker-controlloop/target/${IMAGE}"
+
+VERSION="$(cat "${VERSION_PATH}")"
+MAJOR_MINOR_VERSION="$(cut -f 1,2 -d . "${VERSION_PATH}")"
+TIMESTAMP="$(date -u +%Y%m%dT%H%M%S)"
+
+if [[ -z "${VERSION}" ]]; then
+ echo -e "\nERROR: no version\n"
+ usage
+ exit 1
+fi
+
+if [[ -z "${MAJOR_MINOR_VERSION}" ]]; then
+ echo "\nERROR: no major/minor version: ${VERSION}\n"
+ usage
+ exit 1
+fi
+
+if [[ ${VERSION} == *"SNAPSHOT"* ]]; then
+ MAJOR_MINOR_VERSION="${MAJOR_MINOR_VERSION}-SNAPSHOT"
+else
+ MAJOR_MINOR_VERSION="${MAJOR_MINOR_VERSION}-STAGING"
+fi
+
+BUILD_ARGS="--build-arg BUILD_VERSION_APP_CL=${VERSION}"
+
+echo
+echo -e "BUILD INFO:"
+echo -e "\timage: ${IMAGE}"
+echo -e "\timage-path: ${IMAGE_PATH}"
+echo -e "\timage: ${IMAGE}"
+echo -e "\tregistry: ${DOCKER_REPOSITORY}"
+echo -e "\tpatch: ${VERSION}"
+echo -e "\tversion: ${MAJOR_MINOR_VERSION}"
+echo -e "\ttimestamp: ${TIMESTAMP}"
+echo
+
+TAG_LATEST="onap/${IMAGE}:latest"
+TAG_REPO_LATEST="${DOCKER_REPOSITORY}/onap/${IMAGE}:latest"
+TAG_REPO_VERSION_LATEST="${DOCKER_REPOSITORY}/onap/${IMAGE}:${MAJOR_MINOR_VERSION}-latest"
+TAG_REPO_VERSION_TIMESTAMP="${DOCKER_REPOSITORY}/onap/${IMAGE}:${VERSION}-${TIMESTAMP}Z"
+TAG_REPO_VERSION_STAGING_TIMESTAMP="${DOCKER_REPOSITORY}/onap/${IMAGE}:${VERSION}-STAGING-${TIMESTAMP}Z"
+
+VERIFY_BUILD_TAGS="${TAG_LATEST} ${TAG_REPO_VERSION_LATEST} ${TAG_REPO_VERSION_TIMESTAMP}"
+
+MERGE_BUILD_TAGS="${TAG_LATEST} ${TAG_REPO_VERSION_LATEST} ${TAG_REPO_VERSION_TIMESTAMP}"
+RELEASE_BUILD_TAGS="${TAG_LATEST} ${TAG_REPO_LATEST} ${TAG_REPO_VERSION_LATEST} ${TAG_REPO_VERSION_STAGING_TIMESTAMP}"
+
+MERGE_PUSH_TAGS="${TAG_REPO_VERSION_LATEST} ${TAG_REPO_VERSION_TIMESTAMP}"
+RELEASE_PUSH_TAGS="${TAG_REPO_VERSION_LATEST} ${TAG_REPO_VERSION_STAGING_TIMESTAMP}"
+
+echo
+echo -e "TAGS:"
+echo -e "\tBUILD:"
+echo -e "\t\tverify:\n\t\t\t${VERIFY_BUILD_TAGS// /$'\n\t\t\t'}"
+echo -e "\t\tmerge:\n\t\t\t${MERGE_BUILD_TAGS// /$'\n\t\t\t'}"
+echo -e "\t\trelease:\n\t\t\t${RELEASE_BUILD_TAGS// /$'\n\t\t\t'}"
+echo -e "\tPUSH:"
+echo -e "\t\tverify: "
+echo -e "\t\tmerge:\n\t\t\t${MERGE_PUSH_TAGS// /$'\n\t\t\t'}"
+echo -e "\t\trelease:\n\t\t\t${RELEASE_PUSH_TAGS// /$'\n\t\t\t'}"
+echo
+echo
+
+until [[ -z "$1" ]]; do
+ case "$1" in
+ -h|--help) usage
+ ;;
+ -b|--build) shift
+ build "$1"
+ ;;
+ -p|--push) shift
+ push "$1"
+ ;;
+ -r|--release) release
+ ;;
+ -m|--merge) merge
+ ;;
+ -v|--verify) verify
+ ;;
+ --run) shift
+ volumeArg="$1"
+ run "${volumeArg}"
+ ;;
+ --cmd) shift
+ volumeArg="$1"
+ shift
+ cmdArg="$1"
+ run "${volumeArg}" "${cmdArg}"
+ ;;
+ *) usage
+ exit 1
+ ;;
+ esac
+ shift
+done
+)
diff --git a/controlloop/common/msb/pom.xml b/controlloop/common/msb/pom.xml
deleted file mode 100644
index 43c2cde91..000000000
--- a/controlloop/common/msb/pom.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--
- ============LICENSE_START=======================================================
- drools-pdp-apps
- ================================================================================
- Copyright (C) 2017-2018 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=========================================================
- -->
-
-<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.policy.drools-applications.controlloop.common</groupId>
- <artifactId>common</artifactId>
- <version>1.4.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>msb</artifactId>
-
- <dependencies>
- <!--
- CLM security issue force use of databind 2.9.5
- from msb
- -->
- <dependency>
- <groupId>org.onap.msb.java-sdk</groupId>
- <artifactId>msb-java-sdk</artifactId>
- <version>1.1.0</version>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-api-mockito</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.onap.policy.common</groupId>
- <artifactId>utils-test</artifactId>
- <version>${version.policy.common}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceException.java b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceException.java
deleted file mode 100644
index ebd2e32ff..000000000
--- a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright 2017-2018 ZTE, Inc. and others.
- *
- * 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.policy.msb.client;
-
-public class MsbServiceException extends Exception {
- private static final long serialVersionUID = 5227416822833497317L;
-
- public MsbServiceException() {
- super();
- }
-
- public MsbServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
- super(message, cause, enableSuppression, writableStackTrace);
- }
-
- public MsbServiceException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public MsbServiceException(String message) {
- super(message);
- }
-
- public MsbServiceException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceFactory.java b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceFactory.java
deleted file mode 100644
index c2868a263..000000000
--- a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceFactory.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright 2017-2018 ZTE, Inc. and others.
- *
- * 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.policy.msb.client;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Properties;
-
-import org.onap.msb.sdk.discovery.common.RouteException;
-import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo;
-import org.onap.msb.sdk.discovery.entity.NodeInfo;
-import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class MsbServiceFactory implements Serializable {
- private static final long serialVersionUID = 4638414146278012425L;
- private static final Logger logger = LoggerFactory.getLogger(MsbServiceFactory.class);
- private static final String MSB_PROPERTY_FILE = "msb.policy.properties";
- private static final String MSB_IP = "msb.ip";
- private static final String MSB_PORT = "msb.port";
- private transient MSBServiceClient msbClient;
- private Properties properties;
-
- /**
- * Construct an instance.
- *
- * @throws MsbServiceException if an error occurs
- * @throws IOException if an IO error occurs
- */
- public MsbServiceFactory() throws MsbServiceException, IOException {
- this.init();
- this.msbClient = new MSBServiceClient(properties.getProperty(MSB_IP),
- Integer.parseInt(properties.getProperty(MSB_PORT)));
- }
-
- public MsbServiceFactory(MSBServiceClient msbClient) {
- this.msbClient = msbClient;
- }
-
- private void init() throws MsbServiceException, IOException {
- properties = new Properties();
- String propertyFilePath = System.getProperty(MSB_PROPERTY_FILE);
- if (propertyFilePath == null) {
- throw new MsbServiceException("No msb.policy.properties specified.");
- }
- Path file = Paths.get(propertyFilePath);
- if (!file.toFile().exists()) {
- throw new MsbServiceException("No msb.policy.properties specified.");
- }
-
- if (!Files.isReadable(file)) {
- throw new MsbServiceException("Repository is NOT readable: " + file.toAbsolutePath());
- }
- try (InputStream is = new FileInputStream(file.toFile())) {
- properties.load(is);
- }
- }
-
-
- public Node getNode(String serviceName, String version) {
- return this.build(serviceName, version);
- }
-
- /**
- * Get the node for the given actor.
- *
- * @param actor the actor
- * @return the node
- */
- public Node getNode(String actor) {
- Node node = null;
- switch (actor) {
- case "AAI":
- node = this.build("aai-search", "v11");
- return node;
- case "SO":
- node = this.build("so", "v2");
- return node;
- case "VFC":
- node = this.build("nfvo-nslcm", "v1");
- return node;
- case "SDNC":
- node = this.build("sdnc-nslcm", "v10"); //... ???
- return node;
- default:
- logger.info("MSBServiceManager: policy has an unknown actor.");
- }
- return node;
- }
-
- private Node build(String serviceName, String version) {
- Node node = new Node();
- node.setName(serviceName);
- try {
- MicroServiceFullInfo serviceInfo = msbClient.queryMicroServiceInfo(serviceName, version);
- for (NodeInfo nodeInfo : serviceInfo.getNodes()) {
- node.setIp(nodeInfo.getIp());
- node.setPort(nodeInfo.getPort());
- }
- } catch (RouteException e) {
- logger.info("MSBServiceManager:", e);
- }
- return node;
- }
-}
diff --git a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceManager.java b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceManager.java
deleted file mode 100644
index b94992c28..000000000
--- a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MsbServiceManager.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright 2017-2018 ZTE, Inc. and others.
- *
- * 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.policy.msb.client;
-
-import java.io.IOException;
-import java.io.Serializable;
-
-import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
-
-public class MsbServiceManager implements Serializable {
- private static final long serialVersionUID = -2517971308551895215L;
- private MsbServiceFactory factory;
-
- public MsbServiceManager() throws MsbServiceException, IOException {
- this.factory = new MsbServiceFactory();
- }
-
- public MsbServiceManager(MSBServiceClient msbClient) {
-
- this.factory = new MsbServiceFactory(msbClient);
- }
-
- /**
- * Get the IP and port of the components registered in the MSB.
- *
- * @param actor AAI or SO or VFC or SNDC
- * @return the node
- */
- public Node getNode(String actor) {
-
- return factory.getNode(actor);
- }
-
- /**
- * Get the IP and port of the components registered in the MSB.
- *
- * @param serviceName the service name registered in the MSB
- * @param version the service version registered in the MSB
- * @return the node
- */
- public Node getNode(String serviceName, String version) {
-
- return factory.getNode(serviceName, version);
- }
-
-}
diff --git a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/Node.java b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/Node.java
deleted file mode 100644
index f42b82e3c..000000000
--- a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/Node.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright 2017-2018 ZTE, Inc. and others.
- *
- * 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.policy.msb.client;
-
-import java.io.Serializable;
-
-public class Node implements Serializable {
- private static final long serialVersionUID = -5028618045561310837L;
- private String name;
- private String ip;
- private String port;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getIp() {
- return ip;
- }
-
- public void setIp(String ip) {
- this.ip = ip;
- }
-
- public String getPort() {
- return port;
- }
-
- public void setPort(String port) {
- this.port = port;
- }
-
- @Override
- public String toString() {
- return "Node{" + "name='" + name + '\'' + ", ip='" + ip + '\'' + ", port='" + port + '\'' + '}';
- }
-}
diff --git a/controlloop/common/msb/src/main/resources/msb.policy.properties b/controlloop/common/msb/src/main/resources/msb.policy.properties
deleted file mode 100644
index bb372ec85..000000000
--- a/controlloop/common/msb/src/main/resources/msb.policy.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# ONAP-PDP
-# ================================================================================
-# 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=========================================================
-###
-
-msb.ip=127.0.0.1
-msb.port=10081 \ No newline at end of file
diff --git a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceExceptionTest.java b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceExceptionTest.java
deleted file mode 100644
index 059eecdee..000000000
--- a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceExceptionTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2018 Ericsson. 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.policy.msb.client;
-
-import org.junit.Test;
-import org.onap.policy.common.utils.test.ExceptionsTester;
-
-public class MsbServiceExceptionTest extends ExceptionsTester {
-
- @Test
- public void test() throws Exception {
- test(MsbServiceException.class);
- }
-
-}
diff --git a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceManagerTest.java b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceManagerTest.java
deleted file mode 100644
index 32025fb3c..000000000
--- a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MsbServiceManagerTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright 2017-2018 ZTE, Inc. and others.
- *
- * 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.policy.msb.client;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.when;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.onap.msb.sdk.discovery.common.RouteException;
-import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo;
-import org.onap.msb.sdk.discovery.entity.NodeInfo;
-import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
-
-public class MsbServiceManagerTest {
- @Mock
- private MSBServiceClient msbClient;
-
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
- private MsbServiceManager msbManager;
-
- public MsbServiceManagerTest() {}
-
- @BeforeClass
- public static void setUpClass() {}
-
- @AfterClass
- public static void tearDownClass() {}
-
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- msbManager = new MsbServiceManager(msbClient);
- }
-
- @After
- public void tearDown() {}
-
- @Test
- public void testByActor() throws RouteException, UnknownHostException {
- MicroServiceFullInfo serviceInfo =
- MsbServiceManagerTest.build(InetAddress.getLocalHost().getHostAddress(), "8843");
- when(msbClient.queryMicroServiceInfo("aai-search", "v11")).thenReturn(serviceInfo);
- Node node = msbManager.getNode("AAI");
- assertNotNull(node);
- serviceInfo = MsbServiceManagerTest.build(InetAddress.getLocalHost().getHostAddress(), "8840");
- when(msbClient.queryMicroServiceInfo("so", "v2")).thenReturn(serviceInfo);
- node = msbManager.getNode("SO");
- assertNotNull(node);
-
- serviceInfo = MsbServiceManagerTest.build(InetAddress.getLocalHost().getHostAddress(), "8082");
- when(msbClient.queryMicroServiceInfo("nfvo-nslcm", "v1")).thenReturn(serviceInfo);
- node = msbManager.getNode("VFC");
- assertNotNull(node);
-
- }
-
- @Test
- public void testByActor_when_actorNotExist_returnNull() throws RouteException, UnknownHostException {
- MicroServiceFullInfo serviceInfo =
- MsbServiceManagerTest.build(InetAddress.getLocalHost().getHostAddress(), "8843");
- when(msbClient.queryMicroServiceInfo("aai-search", "v11")).thenReturn(serviceInfo);
- Node node = msbManager.getNode("DDD");
- assertNull(node);
- }
-
- @Test
- public void testByServiceNameAndVersion() throws RouteException, UnknownHostException {
- MicroServiceFullInfo serviceInfo =
- MsbServiceManagerTest.build(InetAddress.getLocalHost().getHostAddress(), "8843");
- when(msbClient.queryMicroServiceInfo("aai-search", "v11")).thenReturn(serviceInfo);
- Node node = msbManager.getNode("aai-search", "v11");
- assertNotNull(node);
- }
-
- @Test
- public void testByServiceNameAndVersion_when_serice_notRegistedToMsb() throws RouteException, UnknownHostException {
- MsbServiceManagerTest.build(InetAddress.getLocalHost().getHostAddress(), "8843");
- when(msbClient.queryMicroServiceInfo("aai-search", "v11")).thenThrow(new RouteException());
- Node node = msbManager.getNode("aai-search", "v11");
- assertNotNull(node);
- assertTrue(node.getName() == "aai-search");
- assertTrue(node.getIp() == null);
- assertTrue(node.getPort() == null);
- }
-
- @Test
- public void testReadMsbPolicyProperites_noPropertyFileSpecifed_throwsException()
- throws MsbServiceException, IOException {
- expectedException.expect(MsbServiceException.class);
- expectedException.expectMessage("No msb.policy.properties specified.");
- System.clearProperty("msb.policy.properties");
- msbManager = new MsbServiceManager();
- }
-
- @Test
- public void testReadMsbPolicyProperites_propertyFileDoesNotExist_throwsException()
- throws MsbServiceException, IOException {
- expectedException.expect(MsbServiceException.class);
- expectedException.expectMessage("No msb.policy.properties specified.");
- System.setProperty("msb.policy.properties", "nonExistingPropertyFile.txt");
- msbManager = new MsbServiceManager();
- System.clearProperty("msb.policy.properties");
- }
-
- @Test
- public void testReadMsbPolicyProperites_propertyFileExists() throws MsbServiceException, IOException,
- NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
- System.setProperty("msb.policy.properties", "src/test/resources/msbPropertyFile.properties");
- msbManager = new MsbServiceManager();
- System.clearProperty("msb.policy.properties");
-
- Field factoryField = msbManager.getClass().getDeclaredField("factory");
- factoryField.setAccessible(true);
- MsbServiceFactory msbServiceFactory = (MsbServiceFactory) factoryField.get(msbManager);
-
- Field msbClientField = msbServiceFactory.getClass().getDeclaredField("msbClient");
- msbClientField.setAccessible(true);
- MSBServiceClient msbClient = (MSBServiceClient) msbClientField.get(msbServiceFactory);
- assertEquals("127.0.0.1:20", msbClient.getMsbSvrAddress());
- }
-
- /**
- * Build a micro service info.
- *
- * @param ip the up address
- * @param port the port number
- * @return the MicroServiceFullInfo
- */
- public static MicroServiceFullInfo build(String ip, String port) {
- Set<NodeInfo> nodes = new HashSet<NodeInfo>();
- NodeInfo node = new NodeInfo();
- node.setPort(port);
- node.setIp(ip);
- nodes.add(node);
- MicroServiceFullInfo serviceInfo = new MicroServiceFullInfo();
- serviceInfo.setNodes(nodes);
- return serviceInfo;
- }
-}
diff --git a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java
deleted file mode 100644
index 7419bbe34..000000000
--- a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2018 Ericsson. 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.policy.msb.client;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-public class NodeTest {
-
- @Test
- public void testSetAndGetName() {
- Node node = new Node();
- final String name = "myName";
- node.setName(name);
- assertEquals(name, node.getName());
- }
-
- @Test
- public void testSetAndGetIp() {
- Node node = new Node();
- final String ip = "127.0.0.1";
- node.setIp(ip);
- assertEquals(ip, node.getIp());
- }
-
- @Test
- public void testSetAndGetPort() {
- Node node = new Node();
- final String port = "1001";
- node.setPort(port);
- assertEquals(port, node.getPort());
- }
-
- @Test
- public void testToString() {
- Node node = new Node();
- final String name = "myName";
- final String ip = "127.0.0.1";
- final String port = "1001";
- node.setName(name);
- node.setIp(ip);
- node.setPort(port);
- assertEquals("Node{name='myName', ip='127.0.0.1', port='1001'}", node.toString());
- }
-
-}
diff --git a/controlloop/common/msb/src/test/resources/msbPropertyFile.properties b/controlloop/common/msb/src/test/resources/msbPropertyFile.properties
deleted file mode 100644
index 8d392de56..000000000
--- a/controlloop/common/msb/src/test/resources/msbPropertyFile.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# ONAP
-# ================================================================================
-# Copyright (C) 2017-2018 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=========================================================
-###
-msb.ip=127.0.0.1
-msb.port=20 \ No newline at end of file
diff --git a/controlloop/common/pom.xml b/controlloop/common/pom.xml
index c9927183d..a0d003c9f 100644
--- a/controlloop/common/pom.xml
+++ b/controlloop/common/pom.xml
@@ -44,7 +44,6 @@
<module>feature-controlloop-management</module>
<module>feature-controlloop-amsterdam</module>
<module>feature-controlloop-casablanca</module>
- <module>msb</module>
</modules>
diff --git a/controlloop/packages/basex-controlloop/pom.xml b/controlloop/packages/basex-controlloop/pom.xml
index 593016816..1d3fe3d3d 100644
--- a/controlloop/packages/basex-controlloop/pom.xml
+++ b/controlloop/packages/basex-controlloop/pom.xml
@@ -54,7 +54,7 @@
<resource>
<directory>src/main/resources</directory>
<includes>
- <include>apps-controlloop-version</include>
+ <include>controlloop.version</include>
</includes>
<filtering>true</filtering>
</resource>
diff --git a/controlloop/packages/basex-controlloop/src/assembly/zip.xml b/controlloop/packages/basex-controlloop/src/assembly/zip.xml
index caa943c21..ba1af668d 100644
--- a/controlloop/packages/basex-controlloop/src/assembly/zip.xml
+++ b/controlloop/packages/basex-controlloop/src/assembly/zip.xml
@@ -37,7 +37,7 @@
<fileMode>755</fileMode>
<directoryMode>700</directoryMode>
<includes>
- <include>apps-controlloop-version</include>
+ <include>controlloop.version</include>
</includes>
</fileSet>
</fileSets>
diff --git a/controlloop/packages/basex-controlloop/src/main/resources/apps-controlloop-version b/controlloop/packages/basex-controlloop/src/main/resources/controlloop.version
index 066e5712e..066e5712e 100644
--- a/controlloop/packages/basex-controlloop/src/main/resources/apps-controlloop-version
+++ b/controlloop/packages/basex-controlloop/src/main/resources/controlloop.version
diff --git a/controlloop/packages/docker-controlloop/pom.xml b/controlloop/packages/docker-controlloop/pom.xml
new file mode 100644
index 000000000..d55f5eab1
--- /dev/null
+++ b/controlloop/packages/docker-controlloop/pom.xml
@@ -0,0 +1,113 @@
+<!--
+ ============LICENSE_START=======================================================
+ ONAP
+ ================================================================================
+ Copyright (C) 2019 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=========================================================
+ -->
+
+<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.policy.drools-applications.controlloop.packages</groupId>
+ <artifactId>packages</artifactId>
+ <version>1.4.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>docker-controlloop</artifactId>
+ <packaging>pom</packaging>
+
+ <name>docker-controlloop</name>
+ <description>ONAP Policy Control Loop PDP-D Docker Build</description>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-cl-apps-zip</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/policy-pdpd-cl</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.onap.policy.drools-applications.controlloop.packages</groupId>
+ <artifactId>apps-controlloop</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <destFileName>apps-controlloop.zip</destFileName>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/policy-pdpd-cl</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/docker</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>get-target-version</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <executable>echo</executable>
+ <workingDirectory>${project.build.directory}</workingDirectory>
+ <arguments>
+ <argument>${project.version}</argument>
+ </arguments>
+ <outputFile>${project.build.directory}/version</outputFile>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
diff --git a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
new file mode 100644
index 000000000..7bb2006cf
--- /dev/null
+++ b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
@@ -0,0 +1,7 @@
+FROM onap/policy-drools:1.4-SNAPSHOT-latest
+
+ARG BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL}
+ENV BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL}
+
+ADD apps-controlloop.zip ./
+RUN unzip apps-controlloop.zip
diff --git a/controlloop/packages/pom.xml b/controlloop/packages/pom.xml
index 045c69101..3b192af89 100644
--- a/controlloop/packages/pom.xml
+++ b/controlloop/packages/pom.xml
@@ -2,7 +2,7 @@
============LICENSE_START=======================================================
Drools PDP Application Models
================================================================================
- Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ Copyright (C) 2017, 2019 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.
@@ -38,5 +38,6 @@
<module>basex-controlloop</module>
<module>artifacts-controlloop</module>
<module>apps-controlloop</module>
+ <module>docker-controlloop</module>
</modules>
</project>