Change package.deb generation to include postinstall for aiokafka pip installation 74/6074/5 v3.1
authortierno <alfonso.tiernosepulveda@telefonica.com>
Fri, 4 May 2018 13:11:26 +0000 (15:11 +0200)
committertierno <alfonso.tiernosepulveda@telefonica.com>
Fri, 4 May 2018 21:00:06 +0000 (23:00 +0200)
Change-Id: I662b52c48cefcfd89ad67d4fe5f2f94e0e5899d4
Signed-off-by: tierno <alfonso.tiernosepulveda@telefonica.com>
Dockerfile
Makefile [new file with mode: 0644]
README.rst
devops-stages/stage-build.sh
python3-osm-common.postinst [new file with mode: 0755]
setup.py

index 7b6b85f..4ec7ecd 100644 (file)
@@ -1,5 +1,6 @@
 FROM ubuntu:16.04
 
-RUN apt-get update && apt-get -y install git make python python3 \
+RUN apt-get update && apt-get -y install git make python python3 python3-stdeb \
     libcurl4-gnutls-dev libgnutls-dev tox python-dev python3-dev \
     debhelper python-setuptools python-all python3-all apt-utils python-magic
+
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..7567727
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,14 @@
+
+clean:
+       rm -rf dist deb_dist .build osm_common-*.tar.gz osm_common.egg-info eggs
+
+package:
+       python3 setup.py --command-packages=stdeb.command sdist_dsc
+       cp python3-osm-common.postinst deb_dist/osm-common*/debian
+       cd deb_dist/osm-common*/debian && echo "pymongo python3-pymongo" > py3dist-overrides
+       cd deb_dist/osm-common*/debian && echo "pip3 python3-pip"       >> py3dist-overrides
+       cd deb_dist/osm-common*/  && dpkg-buildpackage -rfakeroot -uc -us
+       mkdir -p .build
+       cp deb_dist/python3-osm-common*.deb .build/
+
+
index 3273af4..b947507 100644 (file)
@@ -1,11 +1,9 @@
 ===========
 osm-common
 ===========
-
-Contains general modules for lightweight build database, storage and message access.
-The target is to use same library for OSM modules, in order to easy migration to other technologies, that is
-different database or storage object system.
+Contains common modules for OSM lightweight build, that manages database, storage and messaging access.
+It uses a plugin stile in order to easy migration to other technologies, as e.g. different database or storage object system.
 For database: mongo and memory (volatile) are implemented.
-For message: Kafka and local file system are implemented.
-For storage: only local file system is implemented.
+For messaging: Kafka and local file system are implemented.
+For storage: local file system is implemented.
 
index bf7602b..2a93b0a 100755 (executable)
@@ -1,3 +1,8 @@
 #!/bin/sh
-rm -rf deb_dist
-tox -e build
+
+# moved to a Makefile in order to add post install. Needed for "pip3 install aiokafka", 
+# that is not available with a package
+make clean package
+
+#rm -rf deb_dist
+#tox -e build
diff --git a/python3-osm-common.postinst b/python3-osm-common.postinst
new file mode 100755 (executable)
index 0000000..62b04ec
--- /dev/null
@@ -0,0 +1,29 @@
+#!/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-COMMON"
+echo "Install aiokafka with pip"
+
+pip3 install pip==9.0.3
+pip3 install --upgrade aiokafka
+# pip install --upgrade pyang pyangbind
+
+#Creation of log folder
+mkdir -p /var/log/osm
+
index 7dbb828..86a7bf1 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -5,10 +5,11 @@ from setuptools import setup
 
 here = os.path.abspath(os.path.dirname(__file__))
 _name = "osm_common"
-VERSION = "4.0.0rc1"
+VERSION = "4.0.0rc2"
 README = open(os.path.join(here, 'README.rst')).read()
 
 setup(
+    #python_requires='>=3.5',
     name=_name,
     description='OSM common utilities',
     long_description=README,
@@ -21,6 +22,7 @@ setup(
     maintainer_email='alfonso.tiernosepulveda@telefonica.com',
     url='https://osm.etsi.org/gitweb/?p=osm/common.git;a=summary',
     license='Apache 2.0',
+#    setup_requires=['setuptools-version-command'],
 
     packages=[_name],
     include_package_data=True,
@@ -30,5 +32,6 @@ setup(
         'pymongo',
         'aiokafka',
         'PyYAML',
+        'pip3',
     ],
 )