MON Packaging Changes

Signed-off-by: prithiv <prithiv.mohan@intel.com>
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..f2e0417
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,32 @@
+properties([
+    parameters([
+        string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'),
+        string(defaultValue: 'osm/MON', description: '', name: 'GERRIT_PROJECT'),
+        string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'),
+        string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'),
+        string(defaultValue: 'https://osm.etsi.org/gerrit', description: '', name: 'PROJECT_URL_PREFIX'),
+        booleanParam(defaultValue: false, description: '', name: 'TEST_INSTALL'),
+        string(defaultValue: 'artifactory-osm', description: '', name: 'ARTIFACTORY_SERVER'),
+    ])
+])
+
+def devops_checkout() {
+    dir('devops') {
+        git url: "${PROJECT_URL_PREFIX}/osm/devops", branch: params.GERRIT_BRANCH
+    }
+}
+
+node {
+    checkout scm
+    devops_checkout()
+
+    ci_helper = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy"
+    ci_helper.ci_pipeline( 'MON',
+                           params.PROJECT_URL_PREFIX,
+                           params.GERRIT_PROJECT,
+                           params.GERRIT_BRANCH,
+                           params.GERRIT_REFSPEC,
+                           params.GERRIT_PATCHSET_REVISION,
+                           params.TEST_INSTALL,
+                           params.ARTIFACTORY_SERVER)
+}
diff --git a/Makefile b/Makefile
index af9afa7..491a83d 100644
--- a/Makefile
+++ b/Makefile
@@ -26,63 +26,57 @@
 all: package install
 
 clean_deb:
-        rm -rf .build
+	rm -rf .build
 
 clean:
-        rm -rf build
+	rm -rf build
 
 prepare:
-        pip install --upgrade setuptools
-        mkdir -p build/
-        VER1=$(shell git describe | sed -e 's/^v//' |cut -d- -f1); \
-        VER2=$(shell git describe | cut -d- -f2); \
-        VER3=$(shell git describe | cut -d- -f3); \
-        cp MANIFEST.in build/
-        cp requirements.txt build/
-        cp README.rst build/
-        cp stdeb.cfg build/
-        cp kafkad build/
-        cp -r core build/
-        cp -r plugins build/
-        cp -r devops_stages build/
-        cp -r test build/
-        cp setup.py build/
+	pip install --upgrade setuptools
+	mkdir -p build/
+	cp MANIFEST.in build/
+	cp requirements.txt build/
+	cp README.rst build/
+	cp stdeb.cfg build/
+	cp kafkad build/
+	cp -r core build/
+	cp -r plugins build/
+	cp -r devops_stages build/
+	cp -r test build/
+	cp -r scripts build/
+	cp setup.py build/
 
 build: clean openstack_plugins prepare
-        python -m py_compile build/plugins/OpenStack/*.py
+	python -m py_compile build/plugins/OpenStack/*.py
 
 build: clean vrops_plugins prepare
-        python -m py_compile build/plugins/vRealiseOps/*.py
+	python -m py_compile build/plugins/vRealiseOps/*.py
 
 build: clean cloudwatch_plugins prepare
-        python -m py_compile build/plugins/CloudWatch/*.py
+	python -m py_compile build/plugins/CloudWatch/*.py
 
 build: clean core prepare
-        python -m py_compile build/core/message_bus/*.py
+	python -m py_compile build/core/message_bus/*.py
 
 pip: prepare
-        cd build ./setup.py sdist
-        cd build ./plugin_setup.py sdist
+	cd build ./setup.py sdist
+	cd build ./plugin_setup.py sdist
 
 package: clean clean_deb prepare
-        apt-get --yes install python-software-properties \
-        python-pip \
-        python-stdeb \
-        libmysqlclient-dev \
-        libxml2 \
-        python-dev
-        cd build && python setup.py --command-packages=stdeb.command sdist_dsc --with-python2=True
-        cd build/deb_dist/* && dpkg-buildpackage -rfakeroot -uc -us
-        mkdir -p .build
-        cp build/deb_dist/python-*.deb .build/
-        pip install -r build/requirements.txt
+	cd build && python setup.py --command-packages=stdeb.command sdist_dsc --with-python2=True
+	cd build/deb_dist/* && dpkg-buildpackage -rfakeroot -uc -us
+	mkdir -p .build
+	cp build/deb_dist/python-*.deb .build/
 
 install:
-        DEBIAN_FRONTEND=noninteractive apt-get update && \
-        DEBIAN_FRONTEND=noninteractive apt-get install --yes python-pip && \
-        pip install --upgrade pip
+	DEBIAN_FRONTEND=noninteractive apt-get update && \
+	DEBIAN_FRONTEND=noninteractive apt-get install --yes python-pip && \
+	pip install --upgrade pip
         #dpkg -i build/deb_dist/*.deb
 
 develop: prepare
-        pip install -r requirements.txt
-        cd build && ./setup.py develop
+	pip install -r requirements.txt
+	cd build && ./setup.py develop
+
+build-docker-from-source:
+	docker build -t osm:MON -f docker/Dockerfile
\ No newline at end of file
diff --git a/core/kafka.service b/devops_stages/stage-archive.sh
similarity index 65%
copy from core/kafka.service
copy to devops_stages/stage-archive.sh
index f517811..8f6e11d 100644
--- a/core/kafka.service
+++ b/devops_stages/stage-archive.sh
@@ -19,21 +19,15 @@
 # For those usages not covered by the Apache License, Version 2.0 please
 # contact: prithiv.mohan@intel.com or adrian.hoban@intel.com
 
-[Unit]
-Description=Apache Kafka server (broker)
-Documentation=http://kafka.apache.org/documentation.html
-Requires=network.target remote-fs.target
-After=network.target remote-fs.target
+#__author__ = "Prithiv Mohan"
+#__date__   = "25/Sep/2017"
 
-[Service]
-Type=simple
-PIDFile=/var/run/kafka.pid
-#User=root
-#Group=kafka
-ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
-ExecStop=/opt/kafka/bin/kafka-server-stop.sh
-Restart=on-failure
-SyslogIdentifier=kafka
 
-[Install]
-WantedBy=multi-user.target
+#!/bin/sh
+rm -rf pool
+rm -rf dists
+mkdir -p pool/MON
+mv .build/*.deb pool/MON/
+mkdir -p dists/unstable/MON/binary-amd64/
+apt-ftparchive packages pool/MON > dists/unstable/MON/binary-amd64/Packages
+gzip -9fk dists/unstable/MON/binary-amd64/Packages
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..e6adb49
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,42 @@
+# Copyright 2017 Intel Research and Development Ireland Limited
+# *************************************************************
+
+# This file is part of OSM Monitoring module
+# All Rights Reserved to Intel Corporation
+
+# 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.
+
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact: prithiv.mohan@intel.com or adrian.hoban@intel.com
+
+#__author__ = "Prithiv Mohan"
+#__date__   = "25/Sep/2017"
+
+FROM ubuntu:16.04
+RUN  apt-get update && \
+  DEBIAN_FRONTEND=noninteractive apt-get --yes install git tox make python-all python-pip debhelper && \
+  DEBIAN_FRONTEND=noninteractive apt-get --yes install wget python-dev python-software-properties python-stdeb&& \
+  DEBIAN_FRONTEND=noninteractive pip install -U pip && \
+  DEBIAN_FRONTENT=noninteractive pip install -U requests logutils jsonschema lxml && \
+  DEBIAN_FRONTEND=noninteractive pip install -U setuptools setuptools-version-command stdeb jsmin && \
+  DEBIAN_FRONTEND=noninteractive pip install -U six pyvcloud bottle cherrypy pyopenssl && \
+  DEBIAN_FRONTEND=noninteractive apt-get --yes install default-jre libmysqlclient-dev && \
+  DEBIAN_FRONTEND=noninteractive apt-get --yes install libmysqlclient-dev libxml2 && \
+  DEBIAN_FRONTEND=noninteractive pip install -U MySQL-python \
+                                                python-openstackclient \
+                                                python-keystoneclient \
+                                                aodhclient \
+                                                gnocchiclient \
+                                                boto==2.48 \
+                                                python-cloudwatchlogs-logging \
+                                                py-cloudwatch
diff --git a/requirements.txt b/requirements.txt
index 35f7137..d701122 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -19,6 +19,7 @@
 # For those usages not covered by the Apache License, Version 2.0 please
 # contact: prithiv.mohan@intel.com or adrian.hoban@intel.com
 
+stdeb
 MySQL-python
 lxml
 requests
diff --git a/core/kafka.service b/scripts/kafka.sh
similarity index 88%
rename from core/kafka.service
rename to scripts/kafka.sh
index f517811..fcdde67 100644
--- a/core/kafka.service
+++ b/scripts/kafka.sh
@@ -19,6 +19,8 @@
 # For those usages not covered by the Apache License, Version 2.0 please
 # contact: prithiv.mohan@intel.com or adrian.hoban@intel.com
 
+mkdir -p /etc/systemd/system/
+cat  > /etc/systemd/system/kafka.service  << EOF
 [Unit]
 Description=Apache Kafka server (broker)
 Documentation=http://kafka.apache.org/documentation.html
@@ -37,3 +39,7 @@
 
 [Install]
 WantedBy=multi-user.target
+EOF
+systemctl daemon-reload
+systemctl enable kafka.service
+systemctl start kafka.service
diff --git a/setup.py b/setup.py
index 01f6dea..f0e8f43 100644
--- a/setup.py
+++ b/setup.py
@@ -38,6 +38,7 @@
 _copyright = 'Intel Research and Development Ireland'
 _url = 'https://osm.etsi.org/gitweb/?p=osm/MON.git;a=tree'
 _requirements = [
+    "stdeb",
     "MySQL-python",
     "requests",
     "logutils",
@@ -76,7 +77,7 @@
       package_data = {_name: ['core/message_bus/*.py', 'core/models/*.json',
                       'plugins/OpenStack/Aodh/*.py', 'plugins/OpenStack/Gnocchi/*.py',
                       'plugins/vRealiseOps/*', 'plugins/CloudWatch/*']},
-      data_files = [('/etc/systemd/system/', ['core/kafka.service']),
+      data_files = [('/etc/systemd/system/', ['scripts/kafka.sh']),
                    ],
       scripts=['plugins/vRealiseOps/vROPs_Webservice/vrops_webservice',
                'kafkad'],