From 8b7767bf52e1781749e285a7e7f32bfaf88b89d6 Mon Sep 17 00:00:00 2001 From: garciadeblas Date: Thu, 20 Apr 2017 19:21:49 +0200 Subject: [PATCH] Support of debian packaging with versioning for openvim and ovim library; dealing with openflow exec; inclusion of README.rst for both; service file and postinst file added for openvim Change-Id: Iaa42a592bf8c372c3429fe6a5e556537ec3c9559 Signed-off-by: garciadeblas --- MANIFEST.in | 2 + Makefile | 60 +++++++++++++++++++++-------- README.rst | 6 +++ README_lite.rst | 8 ++++ osm_openvim/osm-openvim.service | 11 ++++++ scripts/python-osm-openvim.postinst | 41 ++++++++++++++++++++ setup.py | 7 +++- setup_lite.py | 4 +- stdeb.cfg | 5 +++ stdeb_lite.cfg | 5 +++ 10 files changed, 128 insertions(+), 21 deletions(-) create mode 100644 README.rst create mode 100644 README_lite.rst create mode 100644 osm_openvim/osm-openvim.service create mode 100755 scripts/python-osm-openvim.postinst create mode 100644 stdeb.cfg create mode 100644 stdeb_lite.cfg diff --git a/MANIFEST.in b/MANIFEST.in index db411b1..3a9e9a9 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,5 @@ +include README.rst +include OPENVIM_VERSION include openflow include openvimd include openvim diff --git a/Makefile b/Makefile index 3f9feff..189cb21 100644 --- a/Makefile +++ b/Makefile @@ -6,34 +6,52 @@ lite: clean build_lite pip_lite install_lite clean: rm -rf build + find osm_openvim -name '*.pyc' -delete + find osm_openvim -name '*.pyo' -delete prepare_lite: + pip install setuptools mkdir -p build - cp -r osm_openvim/ build/lib_osm_openvim + 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); \ + echo "$$VER1.dev$$VER2+$$VER3" > build/OVIM_VERSION + cp MANIFEST.in build/ + sed -i "s/include OPENVIM_VERSION/include OVIM_VERSION/g" build/MANIFEST.in + sed -i "s/recursive-include osm_openvim */recursive-include lib_osm_openvim */g" build/MANIFEST.in + sed -i "s/include openflow/include openflow-lib/g" build/MANIFEST.in + sed '/include openvimd/d' build/MANIFEST.in + sed '/include openvim/d' build/MANIFEST.in + cp README_lite.rst build/README.rst + cp setup_lite.py build/setup.py + cp stdeb_lite.cfg build/stdeb.cfg + cp -r osm_openvim/ build/lib_osm_openvim rm build/lib_osm_openvim/httpserver.py rm build/lib_osm_openvim/openvimd.cfg cp -r database_utils build/lib_osm_openvim/ cp -r scripts build/lib_osm_openvim/ - cp MANIFEST.in build/ - cp setup_lite.py build/setup.py - cp openflow build/ - sed -i "s/from osm_openvim/from lib_osm_openvim/g" build/openflow - sed -i "s/import osm_openvim/import lib_osm_openvim/g" build/openflow + cp openflow build/openflow-lib + sed -i "s/from osm_openvim/from lib_osm_openvim/g" build/openflow-lib + sed -i "s/import osm_openvim/import lib_osm_openvim/g" build/openflow-lib sed -i "s/import osm_openvim; print osm_openvim.__path__[0]/import lib_osm_openvim; print lib_osm_openvim.__path__[0]/g" build/lib_osm_openvim/database_utils/migrate_vim_db.sh - sed -i "s/recursive-include osm_openvim */recursive-include lib_osm_openvim */g" build/MANIFEST.in - sed '/include openvimd/d' build/MANIFEST.in - sed '/include openvim/d' build/MANIFEST.in prepare: + pip install 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); \ + echo "$$VER1.dev$$VER2+$$VER3" > build/OPENVIM_VERSION + cp MANIFEST.in build/ + cp README.rst build/ + cp setup.py build/ + cp stdeb.cfg build/ cp -r osm_openvim/ build/ cp -r scripts build/osm_openvim/ cp -r database_utils build/osm_openvim/ cp -r templates build/osm_openvim/ cp -r test build/osm_openvim/ cp -r charm build/osm_openvim/ - cp MANIFEST.in build/ - cp setup.py build/ cp openflow build/ cp openvim build/ cp openvimd build/ @@ -44,18 +62,26 @@ build: prepare build_lite: prepare_lite python -m py_compile build/lib_osm_openvim/*.py -#deb: -# cd build && python setup.py --command-packages=stdeb.command bdist_deb -# -#debianize: -# cd build && python setup.py --command-packages=stdeb.command debianize - pip: clean build cd build; ./setup.py sdist pip_lite: clean build_lite cd build; ./setup.py sdist +package: clean prepare + #apt-get install -y python-stdeb + cd build && python setup.py --command-packages=stdeb.command sdist_dsc --with-python2=True + cd build && cp osm_openvim/scripts/python-osm-openvim.postinst deb_dist/osm-openvim*/debian/ + cd build/deb_dist/osm-openvim* && dpkg-buildpackage -rfakeroot -uc -us + +package_lite: clean prepare_lite + #apt-get install -y python-stdeb + cd build && python setup.py --command-packages=stdeb.command sdist_dsc --with-python2=True + cd build/deb_dist/lib-osm-openvim* && dpkg-buildpackage -rfakeroot -uc -us + +snap: + echo "Nothing to be done yet" + install: clean build cd build/dist; pip install osm_openvim* diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..00ea01a --- /dev/null +++ b/README.rst @@ -0,0 +1,6 @@ +=========== +osm-openvim +=========== + +osm-openvim is a reference VIM offered in OSM to deploy VMs with EPA requirements + diff --git a/README_lite.rst b/README_lite.rst new file mode 100644 index 0000000..e177eda --- /dev/null +++ b/README_lite.rst @@ -0,0 +1,8 @@ +=========== +lib-osm-openvim +=========== + +lib-osm-openvim is the library used in OSM to allow the management of a physical underlay +network. The RO uses this library, so that it is possible to interconnect EPA-based VNFs +using an underlay network which escapes from the control of the VIM. + diff --git a/osm_openvim/osm-openvim.service b/osm_openvim/osm-openvim.service new file mode 100644 index 0000000..4431c6b --- /dev/null +++ b/osm_openvim/osm-openvim.service @@ -0,0 +1,11 @@ +[Unit] +Description=openvim server + +[Service] +User=${USER_OWNER} +ExecStart=openvimd -c /etc/osm/openvimd.cfg --log-file=/var/log/osm/openvim.log +Restart=always + +[Install] +WantedBy=multi-user.target + diff --git a/scripts/python-osm-openvim.postinst b/scripts/python-osm-openvim.postinst new file mode 100755 index 0000000..bb58768 --- /dev/null +++ b/scripts/python-osm-openvim.postinst @@ -0,0 +1,41 @@ +#!/bin/bash + +## +# 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 with: OSM_TECH@list.etsi.org +## + +echo "POST INSTALL OSM-OPENVIM" +OPENVIM_PATH=`python -c 'import osm_openvim; print osm_openvim.__path__[0]'` + +systemctl enable osm-openvim.service + +#Creation of log folder +mkdir -p /var/log/osm + +#configure arg-autocomplete for this user +su $SUDO_USER -c 'activate-global-python-argcomplete --user' +if ! su $SUDO_USER -c 'grep -q bash_completion.d/python-argcomplete.sh ${HOME}/.bashrc' +then + echo " inserting .bash_completion.d/python-argcomplete.sh execution at .bashrc" + su $SUDO_USER -c 'echo ". ${HOME}/.bash_completion.d/python-argcomplete.sh" >> ~/.bashrc' +fi + +echo ' +To make OPENVIM work, you have to install mysql and a database, and finally start osm-openvim service' +echo " ${OPENVIM_PATH}/database_utils/install-db-server.sh # -h for help" +echo ' service osm-openvim start' + + diff --git a/setup.py b/setup.py index fac60ea..6856ff1 100755 --- a/setup.py +++ b/setup.py @@ -3,8 +3,8 @@ from setuptools import setup __name = 'osm_openvim' -__version = '1.0.0' -__description = 'OSM Openvim library' +__version = open('OPENVIM_VERSION').read().strip() +__description = 'OSM Openvim' __author = 'ETSI OSM' __author_email = 'alfonso.tiernosepulveda@telefonica.com' __maintainer = 'mirabal' @@ -64,6 +64,9 @@ setup(name=__name, scripts=__scripts__, package_data={'osm_openvim': ['*']}, include_package_data=True, + data_files = [('/etc/osm/', ['osm_openvim/openvimd.cfg']), + ('/etc/systemd/system/', ['osm_openvim/osm-openvim.service']), + ], install_requires=_req ) diff --git a/setup_lite.py b/setup_lite.py index cf38014..9d2b2ef 100755 --- a/setup_lite.py +++ b/setup_lite.py @@ -3,7 +3,7 @@ from setuptools import setup __name = 'lib_osm_openvim' -__version = '1.0.0' +__version = open('OVIM_VERSION').read().strip() __description = 'OSM Openvim library' __author = 'ETSI OSM' __author_email = 'alfonso.tiernosepulveda@telefonica.com' @@ -38,7 +38,7 @@ _req = [ "paramiko", ] -__scripts__ = ['openflow'] +__scripts__ = ['openflow-lib'] setup(name=__name, version=__version, diff --git a/stdeb.cfg b/stdeb.cfg new file mode 100644 index 0000000..8a40c6c --- /dev/null +++ b/stdeb.cfg @@ -0,0 +1,5 @@ +[DEFAULT] +Suite: xenial +XS-Python-Version: >= 2.7 +Maintainer: Gerardo Garcia +Depends: python-pip, libmysqlclient-dev, libssl-dev, libffi-dev, python-argcomplete, python-jsonschema, python-mysqldb, python-paramiko, python-requests, python-yaml, libvirt-dev, python-bottle, python-libvirt diff --git a/stdeb_lite.cfg b/stdeb_lite.cfg new file mode 100644 index 0000000..3ec45b1 --- /dev/null +++ b/stdeb_lite.cfg @@ -0,0 +1,5 @@ +[DEFAULT] +Suite: xenial +XS-Python-Version: >= 2.7 +Maintainer: Gerardo Garcia +Depends: python-pip, libmysqlclient-dev, libssl-dev, libffi-dev, python-argcomplete, python-jsonschema, python-mysqldb, python-paramiko, python-requests, python-yaml -- 2.17.1