From 0421f6b4f00cf4657d3aee35946d5ebb8b1c2132 Mon Sep 17 00:00:00 2001 From: Piotr Bochenski Date: Fri, 8 Jun 2018 17:49:58 +0200 Subject: Replace shell build scripts with Maven solution Remove dead bash code that is being executed during Maven build phases and reimplement Docker interaction using plain Maven solution. This change simplifies build procedure and allows developers to easily build, run and test their own self-built VES image on local machine. Issue-ID: DCAEGEN2-534 Change-Id: I63eb150406b78a71a55fdc728a4fbb4e1a4e6554 Signed-off-by: Piotr Bochenski --- Dockerfile | 15 - docker-compose.yml | 8 + mvn-phase-lib.sh | 296 ------------ mvn-phase-script.sh | 203 -------- pom.xml | 831 ++++++++++++++++---------------- src/assembly/dep.xml | 159 +++--- src/main/scripts/VESrestfulCollector.sh | 16 +- 7 files changed, 516 insertions(+), 1012 deletions(-) delete mode 100644 Dockerfile create mode 100644 docker-compose.yml delete mode 100755 mvn-phase-lib.sh delete mode 100755 mvn-phase-script.sh diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 259ac980..00000000 --- a/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM openjdk:8-jre-slim - -MAINTAINER vv770d@att.com - -WORKDIR /opt/app/VESCollector - -ENV HOME /opt/app/VESCollector -ENV JAVA_HOME /usr -ENV HOSTALIASES /etc/host.aliases - -COPY opt /opt - -EXPOSE 8080 8443 - -CMD [ "/opt/app/docker-entry.sh" ] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..1d7484bb --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3' +services: + ves: + container_name: ves + image: onap/org.onap.dcaegen2.collectors.ves.vescollector:latest + ports: + - "8080:8080" + - "8443:8443" diff --git a/mvn-phase-lib.sh b/mvn-phase-lib.sh deleted file mode 100755 index ac537223..00000000 --- a/mvn-phase-lib.sh +++ /dev/null @@ -1,296 +0,0 @@ -#!/bin/bash - -# ================================================================================ -# 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========================================================= -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. - - -clean_templated_files() -{ - TEMPLATE_FILES=$(find . -name "*-template") - for F in $TEMPLATE_FILES; do - F2=$(echo "$F" | sed 's/-template$//') - rm -f "$F2" - done -} -clean_tox_files() -{ - TOX_FILES=$(find . -name ".tox") - TOX_FILES="$TOX_FILES $(find . -name 'venv-tox')" - for F in $TOX_FILES; do - rm -rf "$F" - done -} - -expand_templates() -{ - # set up env variables, get ready for template resolution - # NOTE: CCSDK artifacts do not distinguish REALESE vs SNAPSHOTs - export ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.ccsdk.platform.plugins" - export ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_snapshots="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.ccsdk.platform.plugins" - export ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_blueprints_releases="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.ccsdk.platform.blueprints" - export ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_blueprints_snapshots="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.ccsdk.platform.blueprints" - - export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_releases="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2/releases" - export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_snapshots="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2/snapshots" - export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2.platform.plugins/releases" - export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_snapshots="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2.platform.plugins/snapshots" - export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_blueprints_releases="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2.platform.blueprints/releases" - export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_blueprints_snapshots="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2.platform.blueprints/snapshots" - - export ONAPTEMPLATE_PYPIURL_org_onap_dcaegen2="${MVN_NEXUSPROXY}/content/sites/pypi" - - export ONAPTEMPLATE_DOCKERREGURL_org_onap_dcaegen2_releases="$MVN_DOCKERREGISTRY_DAILY" - export ONAPTEMPLATE_DOCKERREGURL_org_onap_dcaegen2_snapshots="$MVN_DOCKERREGISTRY_DAILY/snapshots" - - - TEMPLATE_FILES=$(find . -name "*-template") - for F in $TEMPLATE_FILES; do - F2=$(echo "$F" | sed 's/-template$//') - cp "$F" "$F2" - MOD=$(stat --format '%a' "$F") - chmod "$MOD" "$F2" - done - - - TEMPLATES=$(env |grep ONAPTEMPLATE) - if [ -z "$TEMPLATES" ]; then - return 0 - fi - - echo "====> Resolving the following temaplate from environment variables " - echo "[$TEMPLATES]" - SELFFILE=$(echo "$0" | rev | cut -f1 -d '/' | rev) - for TEMPLATE in $TEMPLATES; do - KEY=$(echo "$TEMPLATE" | cut -f1 -d'=') - VALUE=$(echo "$TEMPLATE" | cut -f2 -d'=') - VALUE2=$(echo "$TEMPLATE" | cut -f2 -d'=' |sed 's/\//\\\//g') - set +e - FILES=$(grep -rl "$KEY") - set -e - - if [ -z "$FILES" ]; then - continue - fi - - # assuming FILES is not longer than 2M bytes, the limit for variable value max size on this VM - for F in $FILES; do - if [[ $F == *"$SELFFILE" ]]; then - continue - fi - if [[ "$F" == *-template ]]; then - continue - fi - - echo "======> Resolving template $KEY to value $VALUE for file $F" - sed -i "s/{{[[:space:]]*$KEY[[:space:]]*}}/$VALUE2/g" "$F" - #cat "$F" - done - - #if [ ! -z "$FILES" ]; then - # echo "====> Resolving template $VALUE to value $VALUE" - # #CMD="grep -rl \"$VALUE\" | tr '\n' '\0' | xargs -0 sed -i \"s/{{[[:space:]]*$VALUE[[:space:]]*}}/$VALUE/g\"" - # grep -rl "$KEY" | tr '\n' '\0' | xargs -0 sed -i 's/$KEY/$VALUE2/g' - # #echo $CMD - # #eval $CMD - #fi - done - echo "====> Done template reolving" -} - - -run_tox_test() -{ - set -x - CURDIR=$(pwd) - TOXINIS=$(find . -name "tox.ini") - for TOXINI in "${TOXINIS[@]}"; do - DIR=$(echo "$TOXINI" | rev | cut -f2- -d'/' | rev) - cd "${CURDIR}/${DIR}" - rm -rf ./venv-tox ./.tox - virtualenv ./venv-tox - source ./venv-tox/bin/activate - pip install --upgrade pip - pip install --upgrade tox argparse - pip freeze - tox - deactivate - rm -rf ./venv-tox ./.tox - done -} - -build_wagons() -{ - rm -rf ./*.wgn venv-pkg - - SETUPFILES=$(find . -name "setup.py") - for SETUPFILE in $SETUPFILES; do - PLUGIN_DIR=$(echo "$SETUPFILE" |rev | cut -f 2- -d '/' |rev) - PLUGIN_NAME=$(grep 'name' "$SETUPFILE" | cut -f2 -d'=' | sed 's/[^0-9a-zA-Z\.]*//g') - PLUGIN_VERSION=$(grep 'version' "$SETUPFILE" | cut -f2 -d'=' | sed 's/[^0-9\.]*//g') - - echo "In $PLUGIN_DIR, $PLUGIN_NAME, $PLUGIN_VERSION" - - virtualenv ./venv-pkg - source ./venv-pkg/bin/activate - pip install --upgrade pip - pip install wagon - wagon create --format tar.gz "$PLUGIN_DIR" - deactivate - rm -rf venv-pkg - - PKG_FILE_NAMES=( "${PLUGIN_NAME}-${PLUGIN_VERSION}"*.wgn ) - echo Built package: "${PKG_FILE_NAMES[@]}" - done -} - - -upload_raw_file() -{ - # Extract the username and password to the nexus repo from the settings file - USER=$(xpath -q -e "//servers/server[id='$MVN_RAWREPO_SERVERID']/username/text()" "$SETTINGS_FILE") - PASS=$(xpath -q -e "//servers/server[id='$MVN_RAWREPO_SERVERID']/password/text()" "$SETTINGS_FILE") - NETRC=$(mktemp) - echo "machine $MVN_RAWREPO_HOST login $USER password $PASS" > "$NETRC" - - REPO="$MVN_RAWREPO_BASEURL_UPLOAD" - - OUTPUT_FILE=$1 - EXT=$(echo "$OUTPUT_FILE" | rev |cut -f1 -d '.' |rev) - if [ "$EXT" == 'yaml' ]; then - OUTPUT_FILE_TYPE='text/x-yaml' - elif [ "$EXT" == 'sh' ]; then - OUTPUT_FILE_TYPE='text/x-shellscript' - elif [ "$EXT" == 'gz' ]; then - OUTPUT_FILE_TYPE='application/gzip' - elif [ "$EXT" == 'wgn' ]; then - OUTPUT_FILE_TYPE='application/gzip' - else - OUTPUT_FILE_TYPE='application/octet-stream' - fi - - - if [ "$MVN_DEPLOYMENT_TYPE" == 'SNAPSHOT' ]; then - SEND_TO="${REPO}/${FQDN}/snapshots" - elif [ "$MVN_DEPLOYMENT_TYPE" == 'STAGING' ]; then - SEND_TO="${REPO}/${FQDN}/releases" - else - echo "Unreconfnized deployment type, quit" - exit - fi - if [ ! -z "$MVN_PROJECT_MODULEID" ]; then - SEND_TO="$SEND_TO/$MVN_PROJECT_MODULEID" - fi - - echo "Sending ${OUTPUT_FILE} to Nexus: ${SEND_TO}" - curl -vkn --netrc-file "${NETRC}" --upload-file "${OUTPUT_FILE}" -X PUT -H "Content-Type: $OUTPUT_FILE_TYPE" "${SEND_TO}/${OUTPUT_FILE}-${MVN_PROJECT_VERSION}-${TIMESTAMP}" - curl -vkn --netrc-file "${NETRC}" --upload-file "${OUTPUT_FILE}" -X PUT -H "Content-Type: $OUTPUT_FILE_TYPE" "${SEND_TO}/${OUTPUT_FILE}-${MVN_PROJECT_VERSION}" - curl -vkn --netrc-file "${NETRC}" --upload-file "${OUTPUT_FILE}" -X PUT -H "Content-Type: $OUTPUT_FILE_TYPE" "${SEND_TO}/${OUTPUT_FILE}" -} - - - -upload_wagons_and_type_yamls() -{ - WAGONS=$(ls -1 ./*.wgn) - for WAGON in $WAGONS ; do - WAGON_NAME=$(echo "$WAGON" | cut -f1 -d '-') - WAGON_VERSION=$(echo "$WAGON" | cut -f2 -d '-') - WAGON_TYPEFILE=$(grep -rl "$WAGON_NAME" | grep yaml | head -1) - - upload_raw_file "$WAGON" - upload_raw_file "$WAGON_TYPEFILE" - done -} - -upload_files_of_extension() -{ - FILES=$(ls -1 ./*."$1") - for F in $FILES ; do - upload_raw_file "$F" - done -} - - - -build_and_push_docker() -{ - IMAGENAME="onap/${FQDN}.${MVN_PROJECT_MODULEID}" - IMAGENAME=$(echo "$IMAGENAME" | sed -e 's/_*$//g' -e 's/\.*$//g') - IMAGENAME=$(echo "$IMAGENAME" | tr '[:upper:]' '[:lower:]') - - # use the major and minor version of the MVN artifact version as docker image version - VERSION="${MVN_PROJECT_VERSION//[^0-9.]/}" - VERSION2=$(echo "$VERSION" | cut -f1-2 -d'.') - - LFQI="${IMAGENAME}:${VERSION}-${TIMESTAMP}"Z - # build a docker image - docker build --rm -f ./Dockerfile -t "${LFQI}" ./ - - REPO="" - if [ $MVN_DEPLOYMENT_TYPE == "SNAPSHOT" ]; then - REPO=$MVN_DOCKERREGISTRY_DAILY - elif [ $MVN_DEPLOYMENT_TYPE == "STAGING" ]; then - # there seems to be no staging docker registry? set to use SNAPSHOT also - #REPO=$MVN_DOCKERREGISTRY_RELEASE - REPO=$MVN_DOCKERREGISTRY_DAILY - else - echo "Fail to determine DEPLOYMENT_TYPE" - REPO=$MVN_DOCKERREGISTRY_DAILY - fi - echo "DEPLOYMENT_TYPE is: $MVN_DEPLOYMENT_TYPE, repo is $REPO" - - if [ ! -z "$REPO" ]; then - USER=$(xpath -e "//servers/server[id='$REPO']/username/text()" "$SETTINGS_FILE") - PASS=$(xpath -e "//servers/server[id='$REPO']/password/text()" "$SETTINGS_FILE") - if [ -z "$USER" ]; then - echo "Error: no user provided" - fi - if [ -z "$PASS" ]; then - echo "Error: no password provided" - fi - [ -z "$PASS" ] && PASS_PROVIDED="" || PASS_PROVIDED="" - echo docker login "$REPO" -u "$USER" -p "$PASS_PROVIDED" - docker login "$REPO" -u "$USER" -p "$PASS" - - if [ $MVN_DEPLOYMENT_TYPE == "SNAPSHOT" ]; then - REPO="$REPO/snapshots" - elif [ $MVN_DEPLOYMENT_TYPE == "STAGING" ]; then - # there seems to be no staging docker registry? set to use SNAPSHOT also - #REPO=$MVN_DOCKERREGISTRY_RELEASE - REPO="$REPO" - else - echo "Fail to determine DEPLOYMENT_TYPE" - REPO="$REPO/unknown" - fi - - OLDTAG="${LFQI}" - PUSHTAGS="${REPO}/${IMAGENAME}:${VERSION}-SNAPSHOT-${TIMESTAMP}Z ${REPO}/${IMAGENAME}:${VERSION} ${REPO}/${IMAGENAME}:latest" - for NEWTAG in ${PUSHTAGS} - do - echo "tagging ${OLDTAG} to ${NEWTAG}" - docker tag "${OLDTAG}" "${NEWTAG}" - echo "pushing ${NEWTAG}" - docker push "${NEWTAG}" - OLDTAG="${NEWTAG}" - done - fi - -} - - - diff --git a/mvn-phase-script.sh b/mvn-phase-script.sh deleted file mode 100755 index ea045de5..00000000 --- a/mvn-phase-script.sh +++ /dev/null @@ -1,203 +0,0 @@ -#!/bin/bash - -# ================================================================================ -# 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========================================================= -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. - -set -ex - - -echo "running script: [$0] for module [$1] at stage [$2]" - -MVN_PROJECT_MODULEID="$1" -MVN_PHASE="$2" - - -PROJECT_ROOT=$(dirname $0) -if [ -z "$WORKSPACE" ]; then - export WORKSPACE="$PROJECT_ROOT" -fi - - -FQDN="${MVN_PROJECT_GROUPID}.${MVN_PROJECT_ARTIFACTID}" -if [ "$MVN_PROJECT_MODULEID" == "__" ]; then - MVN_PROJECT_MODULEID="" -fi - -if [[ "$MVN_PROJECT_VERSION" == *SNAPSHOT ]]; then - echo "=> for SNAPSHOT artifact build" - MVN_DEPLOYMENT_TYPE='SNAPSHOT' -else - echo "=> for STAGING/RELEASE artifact build" - MVN_DEPLOYMENT_TYPE='STAGING' -fi -echo "MVN_DEPLOYMENT_TYPE is [$MVN_DEPLOYMENT_TYPE]" - - -TIMESTAMP=$(date +%C%y%m%dT%H%M%S) - -# expected environment variables -if [ -z "${MVN_NEXUSPROXY}" ]; then - echo "MVN_NEXUSPROXY environment variable not set. Cannot proceed" - exit -fi -MVN_NEXUSPROXY_HOST=$(echo "$MVN_NEXUSPROXY" |cut -f3 -d'/' | cut -f1 -d':') -echo "=> Nexus Proxy at $MVN_NEXUSPROXY_HOST, $MVN_NEXUSPROXY" - -if [ -z "$WORKSPACE" ]; then - WORKSPACE=$(pwd) -fi - -if [ -z "$SETTINGS_FILE" ]; then - echo "SETTINGS_FILE environment variable not set. Cannot proceed" - exit -fi - - - -# mvn phase in life cycle -MVN_PHASE="$2" - - -echo "MVN_PROJECT_MODULEID is [$MVN_PROJECT_MODULEID]" -echo "MVN_PHASE is [$MVN_PHASE]" -echo "MVN_PROJECT_GROUPID is [$MVN_PROJECT_GROUPID]" -echo "MVN_PROJECT_ARTIFACTID is [$MVN_PROJECT_ARTIFACTID]" -echo "MVN_PROJECT_VERSION is [$MVN_PROJECT_VERSION]" -echo "MVN_NEXUSPROXY is [$MVN_NEXUSPROXY]" -echo "MVN_RAWREPO_BASEURL_UPLOAD is [$MVN_RAWREPO_BASEURL_UPLOAD]" -echo "MVN_RAWREPO_BASEURL_DOWNLOAD is [$MVN_RAWREPO_BASEURL_DOWNLOAD]" -MVN_RAWREPO_HOST=$(echo "$MVN_RAWREPO_BASEURL_UPLOAD" | cut -f3 -d'/' |cut -f1 -d':') -echo "MVN_RAWREPO_HOST is [$MVN_RAWREPO_HOST]" -echo "MVN_RAWREPO_SERVERID is [$MVN_RAWREPO_SERVERID]" -echo "MVN_DOCKERREGISTRY_DAILY is [$MVN_DOCKERREGISTRY_DAILY]" -echo "MVN_DOCKERREGISTRY_RELEASE is [$MVN_DOCKERREGISTRY_RELEASE]" - - -source "${PROJECT_ROOT}"/mvn-phase-lib.sh - - -# Customize the section below for each project -case $MVN_PHASE in -clean) - echo "==> clean phase script" - clean_templated_files - clean_tox_files - rm -rf ./venv-* ./*.wgn ./site - ;; -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" - ;; -deploy) - echo "==> deploy phase script" - - case $MVN_DEPLOYMENT_TYPE in - SNAPSHOT) - phase='merge' - ;; - STAGING) - phase='release' - ;; - *) - exit 1 - ;; - esac - - VERSION=$(xpath -e '//project/version/text()' 'pom.xml') - VERSION=${VERSION//\"/} - EXT=$(echo "$VERSION" | rev | cut -s -f1 -d'-' | rev) - if [ -z "$EXT" ]; then - EXT="STAGING" - fi - case $phase in - verify|merge) - if [ "$EXT" != 'SNAPSHOT' ]; then - echo "$phase job only takes SNAPSHOT version, got \"$EXT\" instead" - exit 1 - fi - ;; - release) - if [ ! -z "$EXT" ] && [ "$EXT" != 'STAGING' ]; then - echo "$phase job only takes STAGING or pure numerical version, got \"$EXT\" instead" - exit 1 - fi - ;; - *) - echo "Unknown phase \"$phase\"" - exit 1 - esac - echo "Running \"$phase\" job for version \"$VERSION\"" - - # unarchive the service manager - TARGET="${WORKSPACE}/target" - #STAGE="${TARGET}/stage" - STAGE=. - BASE_DIR="${STAGE}/opt/app" - - # unarchive the collector - AR=${WORKSPACE}/target/VESCollector-${VERSION}-bundle.tar.gz - APP_DIR=${STAGE}/opt/app/VESCollector - - [ -d "${STAGE}/opt/app/VESCollector-${VERSION}" ] && rm -rf "${STAGE}/opt/app/VESCollector-${VERSION}" - - [ ! -f "${APP_DIR}" ] && mkdir -p "${APP_DIR}" - - gunzip -c "${AR}" | tar xvf - -C "${APP_DIR}" --strip-components=1 - - - if [ ! -f "${APP_DIR}/bin/docker-entry.sh" ] - then - echo "FATAL error cannot locate ${APP_DIR}/bin/docker-entry.sh" - exit 2 - fi - cp -p ${APP_DIR}/bin/docker-entry.sh ${BASE_DIR}/docker-entry.sh - chmod 755 "${BASE_DIR}/docker-entry.sh" - - - - - # - # generate docker file - # - if [ ! -f "${APP_DIR}/Dockerfile" ] - then - echo "FATAL error cannot locate ${APP_DIR}/Dockerfile" - exit 2 - fi - cp -p ${APP_DIR}/Dockerfile ${STAGE}/Dockerfile - - BUILD_PATH="${WORKSPACE}/target/stage" - build_and_push_docker - ;; -*) - echo "==> unprocessed phase" - ;; -esac - diff --git a/pom.xml b/pom.xml index 9c559c68..5aae85ca 100644 --- a/pom.xml +++ b/pom.xml @@ -1,407 +1,424 @@ - - - 4.0.0 - - - org.onap.oparent - oparent - 0.1.1 - - - - org.onap.dcaegen2.collectors.ves - VESCollector - 1.3.0-SNAPSHOT - - dcaegen2-collectors-ves - VESCollector - - - ${project.basedir} - - - 1.8 - 1.8 - - - 3.3 - 2.4 - 2.8 - 2.4 - 2.10.4 - 2.6 - 2.4.1 - 1.2.1 - - - true - - - false - - - https://nexus.onap.org - content/repositories/snapshots/ - content/repositories/releases/ - content/sites/site/org/onap/dcaegen2/collectors/ves/${project.artifactId}/${project.version} - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${compiler.plugin.version} - - ${compiler.target.version} - ${compiler.source.version} - - - - org.apache.maven.plugins - maven-source-plugin - ${source.plugin.version} - - true - - - - attach-sources - verify - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-jar-plugin - ${jar.plugin.version} - - - - true - - - ${project.version} - - - - - - maven-assembly-plugin - ${assembly.plugin.version} - - - src/assembly/dep.xml - - - - - make-assembly - package - - single - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${javadoc.plugin.version} - - - true - false - false - - - - aggregate - site - - aggregate - - - - attach-javadoc - - jar - - - - - - org.codehaus.mojo - exec-maven-plugin - ${exec.plugin.version} - - ${session.executionRootDirectory}/mvn-phase-script.sh - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - ${onap.nexus.rawrepo.baseurl.upload} - - ${onap.nexus.rawrepo.baseurl.download} - - ${onap.nexus.rawrepo.serverid} - ${onap.nexus.dockerregistry.daily} - ${onap.nexus.dockerregistry.release} - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.maven.plugins - maven-jar-plugin - - - org.apache.maven.plugins - maven-source-plugin - - - org.apache.maven.plugins - maven-javadoc-plugin - - - maven-assembly-plugin - - - org.codehaus.mojo - exec-maven-plugin - ${exec.plugin.version} - - - deploy script - deploy - - exec - - - - __ - deploy - - - - - install script - install - - exec - - - - __ - install - - - - - - - - - - - - com.github.fge - json-schema-core - 1.2.5 - - - javax.mail - mail - 1.4.7 - - - commons-collections - commons-collections - 3.2.2 - - - org.apache.httpcomponents - httpclient - 4.5.3 - - - com.fasterxml.jackson.core - jackson-databind - 2.8.11 - - - - - - - - com.googlecode.json-simple - json-simple - 1.1.1 - - - com.github.fge - json-schema-validator - 2.2.6 - - - com.google.code.gson - gson - 2.3.1 - - - org.json - json - 20160810 - - - - - org.apache.tomcat.embed - tomcat-embed-core - 8.5.23 - - - org.apache.tomcat - tomcat-catalina - 8.5.23 - - - org.apache.tomcat - tomcat-coyote - 8.5.23 - - - com.att.nsa - nsaServerLibrary - 1.0.10 - - - - - org.slf4j - slf4j-log4j12 - 1.7.21 - - - log4j - apache-log4j-extras - 1.2.17 - - - - - commons-configuration - commons-configuration - 1.10 - - - com.google.guava - guava - 18.0 - - - - - org.mockito - mockito-core - 2.18.0 - test - - - org.assertj - assertj-core - 3.8.0 - test - - - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - ${project.info.reports.plugin.version} - - - - dependencies - license - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${javadoc.plugin.version} - - false - org.umlgraph.doclet.UmlGraphDoc - - org.umlgraph - umlgraph - 5.6 - - -views - true - - - - - - - - external-repository - https://oss.sonatype.org/content/repositories - - - - - - - JCenter - JCenter Repository - http://jcenter.bintray.com - - - Restlet - Restlet Repository - http://maven.restlet.com - - - - + + + + 4.0.0 + + + org.onap.oparent + oparent + 0.1.1 + + + + org.onap.dcaegen2.collectors.ves + VESCollector + 1.3.0-SNAPSHOT + + dcaegen2-collectors-ves + VESCollector + + + + UTF-8 + UTF-8 + 8 + onap/org.onap.dcaegen2.collectors.ves.vescollector + + + true + + + false + + + https://nexus.onap.org + content/repositories/snapshots/ + content/repositories/releases/ + + content/sites/site/org/onap/dcaegen2/collectors/ves/${project.artifactId}/${project.version} + + + + + + + + maven-compiler-plugin + 3.7.0 + + + maven-source-plugin + 3.0.1 + + + maven-jar-plugin + 3.1.0 + + + maven-assembly-plugin + 3.1.0 + + + maven-javadoc-plugin + 3.0.1 + + + maven-project-info-reports-plugin + 2.9 + + + com.spotify + docker-maven-plugin + 1.1.1 + + + + + + + maven-compiler-plugin + + ${java.version} + ${java.version} + true + true + + + + + maven-source-plugin + + true + + + + attach-sources + verify + + jar-no-fork + + + + + + + maven-jar-plugin + + + + true + + + ${project.version} + + + + + + + maven-assembly-plugin + + + src/assembly/dep.xml + + false + false + true + + + + make-assembly + package + + single + + + + + + + maven-javadoc-plugin + + + true + false + false + + + + aggregate + site + + aggregate + + + + attach-javadoc + + jar + + + + + + + com.spotify + docker-maven-plugin + + ${onap.nexus.dockerregistry.daily} + ${docker.image.name} + + latest + + + openjdk:8-jre-slim + + /etc/host.aliases + + /opt/app/VESCollector + + + . + ${project.build.directory}/${project.artifactId}-${project.version} + + + + chmod +x bin/*.sh + + + 8080 + 8443 + + bin/docker-entry.sh + + + + + build-image + package + + build + + + + tag-and-push-image-latest + deploy + + tag + + + ${docker.image.name}:latest + ${onap.nexus.dockerregistry.daily}/${docker.image.name}:latest + true + + + + tag-and-push-image-with-version + deploy + + tag + + + ${docker.image.name}:latest + ${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version} + true + + + + tag-and-push-image-with-version-and-date + deploy + + tag + + + ${docker.image.name}:latest + ${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}-${maven.build.timestamp}Z + true + + + + + + + + + + + maven-project-info-reports-plugin + + + + dependencies + license + + + + + + + maven-javadoc-plugin + + false + org.umlgraph.doclet.UmlGraphDoc + + org.umlgraph + umlgraph + 5.6 + + -views + true + + + + + + + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + com.github.fge + json-schema-validator + 2.2.6 + + + com.github.fge + json-schema-core + 1.2.5 + + + com.google.code.gson + gson + 2.3.1 + + + org.json + json + 20160810 + + + + + org.apache.tomcat.embed + tomcat-embed-core + 8.5.23 + + + org.apache.tomcat + tomcat-catalina + 8.5.23 + + + org.apache.tomcat + tomcat-coyote + 8.5.23 + + + com.att.nsa + nsaServerLibrary + 1.0.10 + + + org.apache.httpcomponents + httpclient + 4.5.3 + + + com.fasterxml.jackson.core + jackson-databind + 2.8.11 + + + + + org.slf4j + slf4j-log4j12 + 1.7.21 + + + log4j + apache-log4j-extras + 1.2.17 + + + + + com.google.guava + guava + 18.0 + + + commons-collections + commons-collections + 3.2.2 + + + commons-configuration + commons-configuration + 1.10 + + + javax.mail + mail + 1.4.7 + + + + + org.mockito + mockito-core + 2.18.0 + test + + + org.assertj + assertj-core + 3.8.0 + test + + + + + + external-repository + https://oss.sonatype.org/content/repositories + + + + + + + JCenter + JCenter Repository + http://jcenter.bintray.com + + + Restlet + Restlet Repository + http://maven.restlet.com + + + + diff --git a/src/assembly/dep.xml b/src/assembly/dep.xml index b322fba1..7d72f84f 100644 --- a/src/assembly/dep.xml +++ b/src/assembly/dep.xml @@ -1,86 +1,79 @@ +================================================================================ +Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved. +Copyright (c) 2018 Nokia. 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 - - bundle - - tar.gz - - - - target/${project.artifactId}-${project.version}.jar - lib - - - - - src/main/scripts - bin - - **/*.sh - - 0755 - unix - - - etc - etc - - - src/main/resources - - **/*.conf - - etc - - - dpo/data-formats - - **/*.json - - specs - - - dpo/spec - - **/*.json - - specs - - - ./ - - Dockerfile - - ./ - - - - - - *:jar - - lib - - - + 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========================================================= +--> + + + + bundle + false + + dir + + + + + src/main/scripts + bin + + **/*.sh + + 0755 + unix + + + etc + etc + + + + src/main/resources + + **/*.conf + + etc + + + + dpo/data-formats + + **/*.json + + specs + + + + dpo/spec + + **/*.json + + specs + + + + + + runtime + true + false + lib + + + diff --git a/src/main/scripts/VESrestfulCollector.sh b/src/main/scripts/VESrestfulCollector.sh index 4e3fd83e..c883f6de 100644 --- a/src/main/scripts/VESrestfulCollector.sh +++ b/src/main/scripts/VESrestfulCollector.sh @@ -32,7 +32,7 @@ BASEDIR=/opt/app/VESCollector/ collector_start() { echo `date +"%Y%m%d.%H%M%S%3N"` - collector_start | tee -a ${BASEDIR}/logs/console.txt - collectorPid=`pgrep -f org.onap.dcae.commonFunction` + collectorPid=`pidof org.onap.dcae.commonFunction` if [ ! -z "$collectorPid" ]; then echo "WARNING: VES Restful Collector already running as PID $collectorPid" | tee -a ${BASEDIR}/logs/console.txt @@ -56,13 +56,13 @@ collector_start() { collector_stop() { echo `date +"%Y%m%d.%H%M%S%3N"` - collector_stop - collectorPid=`pgrep -f org.onap.dcae.commonFunction` + collectorPid=`pidof org.onap.dcae.commonFunction` if [ ! -z "$collectorPid" ]; then echo "Stopping PID $collectorPid" kill -9 $collectorPid sleep 5 - if [ ! "$(pgrep -f org.onap.dcae.commonFunction)" ]; then + if [ ! "$(pidof org.onap.dcae.commonFunction)" ]; then echo "VES Restful Collector has been stopped!!!" else echo "VES Restful Collector is being stopped!!!" @@ -107,16 +107,16 @@ collector_configupdate() { else echo "INFO: Dynamic config updated successfully into VESCollector configuration!" fi - + # Identify alias names from keystore and password provided - + paramName="collector.keystore.alias" localpropertyfile="/opt/app/VESCollector/etc/collector.properties" tmpfile="/opt/app/VESCollector/etc/collector.properties.tmp" - + keystore=`grep collector.keystore.file.location $localpropertyfile | tr -d '[:space:]' | cut -d"=" -f2` keypwdfile=`grep collector.keystore.passwordfile $localpropertyfile | tr -d '[:space:]' | cut -d"=" -f2` - + echo "/usr/bin/keytool -list -keystore $keystore < $keypwdfile | grep "PrivateKeyEntry" | cut -d"," -f1" tmpalias=`/usr/bin/keytool -list -keystore $keystore < $keypwdfile | grep "PrivateKeyEntry" | cut -d"," -f1` echo "tmpalias:" $tmpalias @@ -126,7 +126,7 @@ collector_configupdate() { echo `cat $tmpfile > $localpropertyfile` rm $tmpfile echo "INFO: Keystore alias updated into configuration" - + else echo "ERROR: Configuration file /opt/app/KV-Configuration.json missing" fi -- cgit 1.2.3-korg