Move PNDA mirror and bootstrap from deployments 86/81886/2
authorDonald Hunter <donaldh@cisco.com>
Fri, 8 Mar 2019 14:56:55 +0000 (14:56 +0000)
committerDonald Hunter <donaldh@cisco.com>
Mon, 11 Mar 2019 09:46:39 +0000 (09:46 +0000)
Change-Id: I1c23c9a37f27f0fae46ae1547896d1462f67a15c
Issue-ID: DCAEGEN2-1322
Signed-off-by: Donald Hunter <donaldh@cisco.com>
mvn-phase-script.sh [new file with mode: 0755]
pnda-bootstrap-container/Dockerfile [new file with mode: 0644]
pnda-bootstrap-container/README.md [new file with mode: 0644]
pnda-bootstrap-container/pom.xml [new file with mode: 0644]
pnda-mirror-container/Dockerfile [new file with mode: 0644]
pnda-mirror-container/README.md [new file with mode: 0644]
pnda-mirror-container/pnda-5.0-maint.patch [new file with mode: 0644]
pnda-mirror-container/pom.xml [new file with mode: 0644]
pom.xml

diff --git a/mvn-phase-script.sh b/mvn-phase-script.sh
new file mode 100755 (executable)
index 0000000..590ed4c
--- /dev/null
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+# ================================================================================
+# 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=========================================================
+#
+
+
+set -ex
+
+echo "running script: [$0] for module [$1] at stage [$2]"
+
+MVN_PROJECT_MODULEID="$1"
+MVN_PHASE="$2"
+PROJECT_ROOT=$(dirname $0)
+
+
+echo "MVN_RELEASE_TAG is set to [$MVN_RELEASE_TAG]"
+RELEASE_TAG=${MVN_RELEASE_TAG:-R4}
+if [ "$RELEASE_TAG" != "R1" ]; then
+  RELEASE_TAGGED_DIR="${RELEASE_TAG}/"
+else
+  RELEASE_TAGGED_DIR=""
+fi
+if ! wget -O ${PROJECT_ROOT}/mvn-phase-lib.sh \
+  "$MVN_RAWREPO_BASEURL_DOWNLOAD"/org.onap.dcaegen2.utils/${RELEASE_TAGGED_DIR}scripts/mvn-phase-lib.sh; then
+  echo "Fail to download mvn-phase-lib.sh"
+  exit 1
+fi
+source "${PROJECT_ROOT}"/mvn-phase-lib.sh
+
+
+TIMESTAMP=$(date +%C%y%m%dT%H%M%S)
+export BUILD_NUMBER="${TIMESTAMP}"
+shift 2
+
+case $MVN_PHASE in
+clean)
+  echo "==> clean phase script"
+  clean_templated_files
+  clean_tox_files
+  rm -rf ./venv-* ./*.wgn ./site ./coverage.xml ./xunit-results.xml
+  ;;
+generate-sources)
+  echo "==> generate-sources phase script"
+  expand_templates
+  ;;
+compile)
+  echo "==> compile phase script"
+  ;;
+test)
+  echo "==> test phase script"
+  ;;
+package)
+  echo "==> package phase script"
+  ;;
+install)
+  echo "==> install phase script"
+  case $MVN_PROJECT_MODULEID in
+  bootstrap)
+    upload_files_of_extension sh
+    ;;
+  esac
+  ;;
+deploy)
+  echo "==> deploy phase script"
+
+  case $MVN_PROJECT_MODULEID in
+  bootstrap)
+    # build docker image from Docker file (under module dir) and push to registry
+    upload_files_of_extension sh
+    build_and_push_docker
+    ;;
+  k8s-bootstrap-container|tca-cdap-container|cm-container|redis-cluster-container|healthcheck-container|pnda-mirror-container|pnda-bootstrap-container|tls-init-container|consul-loader-container)
+    build_and_push_docker
+    ;;
+  scripts|cloud_init|heat)
+    # upload all sh file under the root of module
+    upload_files_of_extension_recursively sh $MVN_PROJECT_MODULEID
+    upload_files_of_extension_recursively py $MVN_PROJECT_MODULEID
+    upload_files_of_extension_recursively yaml $MVN_PROJECT_MODULEID
+    ;;
+  *)
+    echo "====> unknown mvn project module"
+    ;;
+  esac
+  ;;
+*)
+  echo "==> unprocessed phase"
+  ;;
+esac
+
diff --git a/pnda-bootstrap-container/Dockerfile b/pnda-bootstrap-container/Dockerfile
new file mode 100644 (file)
index 0000000..4fefa8a
--- /dev/null
@@ -0,0 +1,34 @@
+# ============LICENSE_START=======================================================
+# org.onap.dcae
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. 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=========================================================
+
+FROM python:2.7.15 as build
+
+ARG PNDACLITAG=release/5.0
+ARG PLATFORMSALTTAG=release/5.0
+
+RUN git clone -b $PNDACLITAG https://github.com/pndaproject/pnda-cli.git
+RUN git clone -b $PLATFORMSALTTAG https://github.com/pndaproject/platform-salt.git
+
+RUN pip2 install --no-cache-dir -r pnda-cli/cli/requirements.txt --install-option="--prefix=/install"
+
+FROM python:2.7.15-alpine3.8
+COPY --from=build /install /usr/local
+COPY --from=build /pnda-cli /pnda-cli
+COPY --from=build /platform-salt /platform-salt
+
+RUN apk add --no-cache curl jq openssl openssh
diff --git a/pnda-bootstrap-container/README.md b/pnda-bootstrap-container/README.md
new file mode 100644 (file)
index 0000000..43e089e
--- /dev/null
@@ -0,0 +1,8 @@
+# PNDA Boostrap container
+## Purpose
+The artifacts in this directory build a Docker image including the PNDA CLI.
+The CLI allows the bootstrap of a PNDA container.
+
+## Running the Container
+The container is intended to be launched via a Helm chart as part
+of the ONAP deployment process, guided by OOM.
diff --git a/pnda-bootstrap-container/pom.xml b/pnda-bootstrap-container/pom.xml
new file mode 100644 (file)
index 0000000..1b173ed
--- /dev/null
@@ -0,0 +1,256 @@
+<?xml version="1.0"?>
+<!--
+================================================================================
+Copyright (c) 2018 Cisco Systems. 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.dcaegen2.analytics.pnda</groupId>
+    <artifactId>pnda-utils</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+  </parent>
+  <groupId>org.onap.dcaegen2.deployments</groupId>
+  <artifactId>pnda-bootstrap-container</artifactId>
+  <name>dcaegen2-deployments-pnda-bootstrap-container</name>
+  <version>5.0.0</version>
+  <url>http://maven.apache.org</url>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <sonar.skip>true</sonar.skip>
+    <sonar.sources>.</sonar.sources>
+    <sonar.language>py</sonar.language>
+    <sonar.pluginName>Python</sonar.pluginName>
+    <sonar.inclusions>**/*.py</sonar.inclusions>
+
+    <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
+    <!-- properties for Nexus raw repo -->
+    <onap.nexus.rawrepo.baseurl.upload>https://nexus.onap.org/content/sites/raw</onap.nexus.rawrepo.baseurl.upload>
+    <onap.nexus.rawrepo.baseurl.download>https://nexus.onap.org/service/local/repositories/raw/content</onap.nexus.rawrepo.baseurl.download>
+    <onap.nexus.rawrepo.serverid>ecomp-raw</onap.nexus.rawrepo.serverid>
+    <!-- properties for Nexus Docker registry -->
+    <onap.nexus.dockerregistry.snapshot>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot>
+    <onap.nexus.dockerregistry.release>nexus3.onap.org:10002</onap.nexus.dockerregistry.release>
+    <onap.nexus.dockerregistry.snapshot.serverid>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot.serverid>
+    <onap.nexus.dockerregistry.release.serverid>nexus3.onap.org:10002</onap.nexus.dockerregistry.release.serverid>
+    <!-- properties for Pypi server -->
+    <onap.nexus.pypiserver.baseurl>https://nexus3.onap.org/repository/PyPi</onap.nexus.pypiserver.baseurl>
+    <onap.nexus.pypiserver.serverid>onap-pypi</onap.nexus.pypiserver.serverid>
+  </properties>
+  <build>
+    <finalName>${project.artifactId}-${project.version}</finalName>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.sonatype.plugins</groupId>
+          <artifactId>nexus-staging-maven-plugin</artifactId>
+          <version>1.6.7</version>
+          <configuration>
+            <skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <!-- This version supports the "deployAtEnd" parameter -->
+          <version>2.8</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- first disable the default Java plugins at various stages -->
+        <!-- maven-resources-plugin is called during "*resource" phases by default behavior.  it prepares
+         the resources dir.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>2.6</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- maven-compiler-plugin is called during "compile" phases by default behavior.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>3.1</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- maven-jar-plugin is called during "compile" phase by default behavior.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>2.4</version>
+          <executions>
+            <execution>
+              <id>default-jar</id>
+              <phase/>
+            </execution>
+          </executions>
+        </plugin>
+        <!-- maven-install-plugin is called during "install" phase by default behavior.  it tries to copy stuff under
+         target dir to ~/.m2.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>2.4</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- maven-surefire-plugin is called during "test" phase by default behavior.  it triggers junit test.
+         we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.12.4</version>
+          <configuration>
+            <skipTests>true</skipTests>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>exec-maven-plugin</artifactId>
+          <version>1.2.1</version>
+          <configuration>
+            <executable>../mvn-phase-script.sh</executable>
+            <environmentVariables>
+              <!-- make mvn properties as env for our script -->
+              <MVN_PROJECT_GROUPID>${project.groupId}</MVN_PROJECT_GROUPID>
+              <MVN_PROJECT_ARTIFACTID>${project.artifactId}</MVN_PROJECT_ARTIFACTID>
+              <MVN_PROJECT_VERSION>${project.version}</MVN_PROJECT_VERSION>
+              <MVN_NEXUSPROXY>${onap.nexus.url}</MVN_NEXUSPROXY>
+              <MVN_RAWREPO_BASEURL_UPLOAD>${onap.nexus.rawrepo.baseurl.upload}</MVN_RAWREPO_BASEURL_UPLOAD>
+              <MVN_RAWREPO_BASEURL_DOWNLOAD>${onap.nexus.rawrepo.baseurl.download}</MVN_RAWREPO_BASEURL_DOWNLOAD>
+              <MVN_RAWREPO_SERVERID>${onap.nexus.rawrepo.serverid}</MVN_RAWREPO_SERVERID>
+              <MVN_DOCKERREGISTRY_SNAPSHOT>${onap.nexus.dockerregistry.snapshot}</MVN_DOCKERREGISTRY_SNAPSHOT>
+              <MVN_DOCKERREGISTRY_RELEASE>${onap.nexus.dockerregistry.release}</MVN_DOCKERREGISTRY_RELEASE>
+              <MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>${onap.nexus.dockerregistry.snapshot.serverid}</MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>
+              <MVN_DOCKERREGISTRY_RELEASE_SERVERID>${onap.nexus.dockerregistry.release.serverid}</MVN_DOCKERREGISTRY_RELEASE_SERVERID>
+              <MVN_PYPISERVER_BASEURL>${onap.nexus.pypiserver.baseurl}</MVN_PYPISERVER_BASEURL>
+              <MVN_PYPISERVER_SERVERID>${onap.nexus.pypiserver.serverid}</MVN_PYPISERVER_SERVERID>
+            </environmentVariables>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <!-- now we configure custom action (calling a script) at various lifecycle phases -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <version>1.2.1</version>
+        <executions>
+          <execution>
+            <id>clean phase script</id>
+            <phase>clean</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>clean</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>generate-sources script</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>generate-sources</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>compile script</id>
+            <phase>compile</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>compile</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>package script</id>
+            <phase>package</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>package</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>test script</id>
+            <phase>test</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>test</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>install script</id>
+            <phase>install</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>install</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>deploy script</id>
+            <phase>deploy</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>deploy</argument>
+              </arguments>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/pnda-mirror-container/Dockerfile b/pnda-mirror-container/Dockerfile
new file mode 100644 (file)
index 0000000..ea7e100
--- /dev/null
@@ -0,0 +1,47 @@
+# ============LICENSE_START=======================================================
+# org.onap.dcae
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. 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=========================================================
+
+FROM centos:7.5.1804 as build
+
+ARG PNDARELEASE=release/5.0
+# Can be HDP or CDH
+ARG HADOOPDIST=HDP
+
+RUN yum clean all && rm -rf /var/cache/yum/* && yum install gettext git -y
+
+RUN git clone -b $PNDARELEASE https://github.com/pndaproject/pnda.git
+
+COPY pnda-5.0-maint.patch /
+WORKDIR /pnda
+RUN git apply /pnda-5.0-maint.patch
+
+WORKDIR /pnda/mirror
+# Add the -r flag to mirror rpm packages
+RUN ./create_mirror.sh -d $HADOOPDIST -r
+
+WORKDIR /pnda/build
+RUN ./install-build-tools.sh
+
+RUN yum install bzip2 make which -y
+RUN source ./set-pnda-env.sh \
+    && PARALLEL="--jobs 1" ./build-pnda.sh RELEASE $PNDARELEASE $HADOOPDIST
+
+FROM nginx:alpine
+
+COPY --from=build /pnda/mirror/mirror-dist /usr/share/nginx/html/
+COPY --from=build /pnda/build/pnda-dist /usr/share/nginx/html/
diff --git a/pnda-mirror-container/README.md b/pnda-mirror-container/README.md
new file mode 100644 (file)
index 0000000..6312439
--- /dev/null
@@ -0,0 +1,23 @@
+# PNDA Mirror
+## Purpose
+The artifacts in this directory build a Docker image based public PNDA mirror
+creation scripts. The container have all the needed offline resources to
+deploy a PNDA platform.
+
+## Running the Container
+The container is intended to be launched via a Helm chart as part
+of the ONAP deployment process, guided by OOM. It can be run directly
+into a native Docker environment, using:
+```
+docker run --name pnda-mirror -d --restart unless-stopped \
+   -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
+   -p <some_external_port>:8080 \
+   --tmpfs /run \
+   --tmpfs /run/lock \
+   --security-opt seccomp:unconfined
+   --cap-add SYS_ADMIN \
+   <image_name>
+```
+
+We also expect that in a Kubernetes environment the external port mapping would not be
+needed.
diff --git a/pnda-mirror-container/pnda-5.0-maint.patch b/pnda-mirror-container/pnda-5.0-maint.patch
new file mode 100644 (file)
index 0000000..437b0db
--- /dev/null
@@ -0,0 +1,25 @@
+diff --git a/build/upstream-builds/build-gobblin.sh b/build/upstream-builds/build-gobblin.sh
+index d191524..34ee0a0 100755
+--- a/build/upstream-builds/build-gobblin.sh
++++ b/build/upstream-builds/build-gobblin.sh
+@@ -17,7 +17,7 @@ MODE=${1}
+ ARG=${2}
+ HADOOP_DISTRIBUTION=${3}
+-EXCLUDES="-x test"
++EXCLUDES="-x test -x findbugsMain"
+ set -e
+ set -x
+diff --git a/mirror/dependencies/pnda-static-file-dependencies.txt b/mirror/dependencies/pnda-static-file-dependencies.txt
+index 8f04a87..133e08b 100644
+--- a/mirror/dependencies/pnda-static-file-dependencies.txt
++++ b/mirror/dependencies/pnda-static-file-dependencies.txt
+@@ -21,5 +21,5 @@ http://central.maven.org/maven2/org/kitesdk/kite-tools/1.0.0/kite-tools-1.0.0-bi
+ http://central.maven.org/maven2/org/kitesdk/kite-tools/1.0.0/kite-tools-1.0.0-binary.jar.sha1
+ https://releases.hashicorp.com/consul/1.0.3/consul_1.0.3_linux_amd64.zip
+ https://releases.hashicorp.com/consul/1.0.3/consul_1.0.3_SHA256SUMS
+-http://www.apache.org/dist/knox/1.1.0/knox-1.1.0.zip
+-http://www.apache.org/dist/knox/1.1.0/knox-1.1.0.zip.sha1
++http://archive.apache.org/dist/knox/1.1.0/knox-1.1.0.zip
++http://archive.apache.org/dist/knox/1.1.0/knox-1.1.0.zip.sha1
diff --git a/pnda-mirror-container/pom.xml b/pnda-mirror-container/pom.xml
new file mode 100644 (file)
index 0000000..09a42f0
--- /dev/null
@@ -0,0 +1,256 @@
+<?xml version="1.0"?>
+<!--
+================================================================================
+Copyright (c) 2018 Cisco Systems. 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.dcaegen2.analytics.pnda</groupId>
+    <artifactId>pnda-utils</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+  </parent>
+  <groupId>org.onap.dcaegen2.deployments</groupId>
+  <artifactId>pnda-mirror-container</artifactId>
+  <name>dcaegen2-deployments-pnda-mirror-container</name>
+  <version>5.0.0</version>
+  <url>http://maven.apache.org</url>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <sonar.skip>true</sonar.skip>
+    <sonar.sources>.</sonar.sources>
+    <sonar.language>py</sonar.language>
+    <sonar.pluginName>Python</sonar.pluginName>
+    <sonar.inclusions>**/*.py</sonar.inclusions>
+
+    <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
+    <!-- properties for Nexus raw repo -->
+    <onap.nexus.rawrepo.baseurl.upload>https://nexus.onap.org/content/sites/raw</onap.nexus.rawrepo.baseurl.upload>
+    <onap.nexus.rawrepo.baseurl.download>https://nexus.onap.org/service/local/repositories/raw/content</onap.nexus.rawrepo.baseurl.download>
+    <onap.nexus.rawrepo.serverid>ecomp-raw</onap.nexus.rawrepo.serverid>
+    <!-- properties for Nexus Docker registry -->
+    <onap.nexus.dockerregistry.snapshot>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot>
+    <onap.nexus.dockerregistry.release>nexus3.onap.org:10002</onap.nexus.dockerregistry.release>
+    <onap.nexus.dockerregistry.snapshot.serverid>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot.serverid>
+    <onap.nexus.dockerregistry.release.serverid>nexus3.onap.org:10002</onap.nexus.dockerregistry.release.serverid>
+    <!-- properties for Pypi server -->
+    <onap.nexus.pypiserver.baseurl>https://nexus3.onap.org/repository/PyPi</onap.nexus.pypiserver.baseurl>
+    <onap.nexus.pypiserver.serverid>onap-pypi</onap.nexus.pypiserver.serverid>
+  </properties>
+  <build>
+    <finalName>${project.artifactId}-${project.version}</finalName>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.sonatype.plugins</groupId>
+          <artifactId>nexus-staging-maven-plugin</artifactId>
+          <version>1.6.7</version>
+          <configuration>
+            <skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <!-- This version supports the "deployAtEnd" parameter -->
+          <version>2.8</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- first disable the default Java plugins at various stages -->
+        <!-- maven-resources-plugin is called during "*resource" phases by default behavior.  it prepares
+         the resources dir.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>2.6</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- maven-compiler-plugin is called during "compile" phases by default behavior.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>3.1</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- maven-jar-plugin is called during "compile" phase by default behavior.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>2.4</version>
+          <executions>
+            <execution>
+              <id>default-jar</id>
+              <phase/>
+            </execution>
+          </executions>
+        </plugin>
+        <!-- maven-install-plugin is called during "install" phase by default behavior.  it tries to copy stuff under
+         target dir to ~/.m2.  we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>2.4</version>
+          <configuration>
+            <skip>true</skip>
+          </configuration>
+        </plugin>
+        <!-- maven-surefire-plugin is called during "test" phase by default behavior.  it triggers junit test.
+         we do not need it -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.12.4</version>
+          <configuration>
+            <skipTests>true</skipTests>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>exec-maven-plugin</artifactId>
+          <version>1.2.1</version>
+          <configuration>
+            <executable>../mvn-phase-script.sh</executable>
+            <environmentVariables>
+              <!-- make mvn properties as env for our script -->
+              <MVN_PROJECT_GROUPID>${project.groupId}</MVN_PROJECT_GROUPID>
+              <MVN_PROJECT_ARTIFACTID>${project.artifactId}</MVN_PROJECT_ARTIFACTID>
+              <MVN_PROJECT_VERSION>${project.version}</MVN_PROJECT_VERSION>
+              <MVN_NEXUSPROXY>${onap.nexus.url}</MVN_NEXUSPROXY>
+              <MVN_RAWREPO_BASEURL_UPLOAD>${onap.nexus.rawrepo.baseurl.upload}</MVN_RAWREPO_BASEURL_UPLOAD>
+              <MVN_RAWREPO_BASEURL_DOWNLOAD>${onap.nexus.rawrepo.baseurl.download}</MVN_RAWREPO_BASEURL_DOWNLOAD>
+              <MVN_RAWREPO_SERVERID>${onap.nexus.rawrepo.serverid}</MVN_RAWREPO_SERVERID>
+              <MVN_DOCKERREGISTRY_SNAPSHOT>${onap.nexus.dockerregistry.snapshot}</MVN_DOCKERREGISTRY_SNAPSHOT>
+              <MVN_DOCKERREGISTRY_RELEASE>${onap.nexus.dockerregistry.release}</MVN_DOCKERREGISTRY_RELEASE>
+              <MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>${onap.nexus.dockerregistry.snapshot.serverid}</MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>
+              <MVN_DOCKERREGISTRY_RELEASE_SERVERID>${onap.nexus.dockerregistry.release.serverid}</MVN_DOCKERREGISTRY_RELEASE_SERVERID>
+              <MVN_PYPISERVER_BASEURL>${onap.nexus.pypiserver.baseurl}</MVN_PYPISERVER_BASEURL>
+              <MVN_PYPISERVER_SERVERID>${onap.nexus.pypiserver.serverid}</MVN_PYPISERVER_SERVERID>
+            </environmentVariables>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <!-- now we configure custom action (calling a script) at various lifecycle phases -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <version>1.2.1</version>
+        <executions>
+          <execution>
+            <id>clean phase script</id>
+            <phase>clean</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>clean</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>generate-sources script</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>generate-sources</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>compile script</id>
+            <phase>compile</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>compile</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>package script</id>
+            <phase>package</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>package</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>test script</id>
+            <phase>test</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>test</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>install script</id>
+            <phase>install</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>install</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>deploy script</id>
+            <phase>deploy</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <arguments>
+                <argument>${project.artifactId}</argument>
+                <argument>deploy</argument>
+              </arguments>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/pom.xml b/pom.xml
index 6b193d5..6182853 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -36,6 +36,8 @@ limitations under the License.
 
   <modules>
     <module>pnda-ztt-app</module>
+    <module>pnda-mirror-container</module>
+    <module>pnda-bootstrap-container</module>
   </modules>
 
 </project>