MON Packaging Changes 52/5552/5
authorprithiv <prithiv.mohan@intel.com>
Tue, 10 Oct 2017 12:12:55 +0000 (13:12 +0100)
committerprithiv <prithiv.mohan@intel.com>
Wed, 11 Oct 2017 09:53:22 +0000 (11:53 +0200)
Signed-off-by: prithiv <prithiv.mohan@intel.com>
Jenkinsfile [new file with mode: 0644]
Makefile
core/kafka.service [deleted file]
devops_stages/stage-archive.sh [new file with mode: 0644]
docker/Dockerfile [new file with mode: 0644]
requirements.txt
scripts/kafka.sh [new file with mode: 0644]
setup.py

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644 (file)
index 0000000..f2e0417
--- /dev/null
@@ -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)
+}
index af9afa7..491a83d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -26,63 +26,57 @@ SHELL := /bin/bash
 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/core/kafka.service
deleted file mode 100644 (file)
index f517811..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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
-
-[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
-
-[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
diff --git a/devops_stages/stage-archive.sh b/devops_stages/stage-archive.sh
new file mode 100644 (file)
index 0000000..8f6e11d
--- /dev/null
@@ -0,0 +1,33 @@
+# 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"
+
+
+#!/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 (file)
index 0000000..e6adb49
--- /dev/null
@@ -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
index 35f7137..d701122 100644 (file)
@@ -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/scripts/kafka.sh b/scripts/kafka.sh
new file mode 100644 (file)
index 0000000..fcdde67
--- /dev/null
@@ -0,0 +1,45 @@
+# 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
+
+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
+Requires=network.target remote-fs.target
+After=network.target remote-fs.target
+
+[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
+EOF
+systemctl daemon-reload
+systemctl enable kafka.service
+systemctl start kafka.service
index 01f6dea..f0e8f43 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -38,6 +38,7 @@ _license = 'Apache 2.0'
 _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 @@ setup(name="mon_core",
       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'],