Fixing checkstyle errors
[dcaegen2/collectors/ves.git] / README.md
1 DCAE VESCollector
2 ======================================
3
4 This is the repository for VES Collector for Open DCAE. 
5
6 ### Build Instructions
7
8 This project is organized as a mvn project for a jar package.
9
10 ```
11 git clone ssh://git@<repo-address>:dcae-collectors/OpenVESCollector.git
12 mvn clean install
13 ```
14
15 ### Docker Image
16
17 The jar file is bundled into a docker image installed by the DCAE Controller. Following is the process to creating the image
18
19 #### Set up the packaging environment
20 1. Extract the VESCollector code and do mvn build
21 ```
22 $ git clone ssh://git@<repo-address>:dcae-collectors/OpenVESCollector.git
23 ```
24
25 2. Once the collecter build is successful build dcae-controller
26 ```
27 BASE_WS="/var/lib/jenkins/workspace"
28 PROJECT="build-dcae-controller"
29 DCM_DIR="dcae-org.onap.dcae.controller/dcae-controller-service-standardeventcollector-manager/target/"
30 ARTIFACT="dcae-controller-service-standardeventcollector-manager-0.1.0-SNAPSHOT-runtime.zip"
31 DCM_AR="${BASE_WS}/${PROJECT}/${DCM_DIR}/${ARTIFACT}" 
32 echo "WORKSPACE: ${WORKSPACE}"
33 if [ ! -f "${DCM_AR}" ]
34 then
35         echo "FATAL error cannot locate ${DCM_AR}"
36     exit 2
37 fi
38 TARGET=${WORKSPACE}/target
39 STAGE=${TARGET}/stage
40 DCM_DIR=${STAGE}/opt/app/manager
41 [ ! -d ${DCM_DIR} ] && mkdir -p ${DCM_DIR}
42 unzip -qo -d ${DCM_DIR} ${DCM_AR}
43 ```
44 3.  Get the VES collector Servicemanager artifacts.
45 ```
46 DCM_DIR=${WORKSPACE}/target/stage/opt/app/manager
47 [ -f "${DCM_DIR}/start-manager.sh" ] && exit 0
48 cat <<'EOF' > ${DCM_DIR}/start-manager.sh
49 #!/bin/bash
50 MAIN=org.openecomp.dcae.controller.service.standardeventcollector.servers.manager.DcaeControllerServiceStandardeventcollectorManagerServer
51 ACTION=start
52 WORKDIR=/opt/app/manager
53 LOGS="${WORKDIR}/logs"
54 [ ! -d $LOGS ] && mkdir -p $LOGS
55 echo 10.0.4.102 $(hostname).dcae.simpledemo.openecomp.org >> /etc/hosts
56 exec java -cp ./config:./lib:./lib/*:./bin ${MAIN} ${ACTION} > logs/manager.out 2>logs/manager.err
57 EOF
58 chmod 775 ${DCM_DIR}/start-manager.sh
59 ```
60 3.      Obtain the required packages to be included in docker
61 ```
62 cat <<'EOF' > ${WORKSPACE}/target/stage/Dockerfile 
63 FROM ubuntu:14.04
64 MAINTAINER dcae@lists.openecomp.org
65 WORKDIR /opt/app/manager
66 ENV HOME /opt/app/SEC
67 ENV JAVA_HOME /usr
68 RUN apt-get update && apt-get install -y \
69         bc \
70         curl \
71         telnet \
72         vim \
73         netcat \
74         openjdk-7-jdk
75 COPY opt /opt
76 EXPOSE 9999
77 CMD [ "/opt/app/manager/start-manager.sh" ]
78 EOF
79 ```
80 4.      Extract VES collector jar and copy required directory into image build directory
81 ```
82 AR=${WORKSPACE}/target/OpenVESCollector-0.0.1-SNAPSHOT-bundle.tar.gz
83 STAGE=${WORKSPACE}/target/stage
84 APP_DIR=${STAGE}/opt/app/SEC
85 [ -d ${STAGE}/opt/app/OpenVESCollector-0.0.1-SNAPSHOT ] && rm -rf ${STAGE}/opt/app/OpenVESCollector-0.0.1-SNAPSHOT
86 [ ! -f $APP_DIR ] && mkdir -p ${APP_DIR}
87 gunzip -c ${AR} | tar xvf - -C ${APP_DIR} --strip-components=1
88 # lji: removal of ^M in the VES startup script
89 sed -i 's/\r$//g' ${APP_DIR}/bin/SErestfulCollector.sh
90 #find ${APP_DIR} -name "*.sh" -print0 |xargs -0 sed -i 's/\r$//g'
91 ```
92 #### Create the Docker image and push package to the OpenECOMP Nexus distribution server
93 ```
94 #
95 # build the docker image. tag and then push to the remote repo
96 #
97 IMAGE="dcae-controller-common-event"
98 TAG="latest"
99 LFQI="${IMAGE}:${TAG}" 
100 REPO="ecomp-nexus:51212"
101 RFQI="${REPO}/${LFQI}"
102 BUILD_PATH="${WORKSPACE}/target/stage"
103 # build a docker image
104 docker build --rm -t ${LFQI} ${BUILD_PATH}
105 # tag
106 docker tag ${LFQI} ${RFQI}
107 # push to remote repo 
108 docker push ${RFQI}
109 ```