Changes in Makefile,setup and devops files, including new tox.ini

Change-Id: I68dbd848697a2407bea81797a9af06399edda3de
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/Dockerfile b/Dockerfile
index 2e05659..7dac9e8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,10 +1,8 @@
 FROM ubuntu:16.04
 
 RUN  apt-get update && \
-  DEBIAN_FRONTEND=noninteractive apt-get -y install git build-essential && \
-  DEBIAN_FRONTEND=noninteractive apt-get -y install python python-dev python-all python-stdeb fakeroot pypi2deb && \
-  DEBIAN_FRONTEND=noninteractive apt-get -y install python-pip libmysqlclient-dev libssl-dev libffi-dev libvirt-dev && \
-  DEBIAN_FRONTEND=noninteractive pip install --upgrade pip && \
-  DEBIAN_FRONTEND=noninteractive pip install --upgrade setuptools && \
-  DEBIAN_FRONTEND=noninteractive apt-get -y install python-argcomplete python-jsonschema python-logutils python-mysqldb python-paramiko python-requests python-yaml python-bottle python-libvirt
+  DEBIAN_FRONTEND=noninteractive apt-get -y install git make python python-pip debhelper && \
+  DEBIAN_FRONTEND=noninteractive pip install -U pip && \
+  DEBIAN_FRONTEND=noninteractive pip install -U setuptools setuptools-version-command stdeb
+
 
diff --git a/MANIFEST.in b/MANIFEST.in
index 3a9e9a9..71cb3ec 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,5 +1,5 @@
 include README.rst
-include OPENVIM_VERSION
+#include OPENVIM_VERSION
 include openflow
 include openvimd
 include openvim
diff --git a/Makefile b/Makefile
index bae4fe1..553d349 100644
--- a/Makefile
+++ b/Makefile
@@ -1,25 +1,36 @@
 #!/usr/bin/env bash
+.PHONY: all test clean
+
 SHELL := /bin/bash
 
-all: clean build pip install
-lite: clean build_lite pip_lite install_lite
+all:
+	$(MAKE) clean_build build
+	$(MAKE) clean_build openvim
+	$(MAKE) clean_build build_lite
+	$(MAKE) clean_build lite
 
-clean_deb:
+openvim: package_openvim
+
+lite: package_lib_openvim
+
+clean: clean_build
 	rm -rf .build
-clean:
+
+clean_build:
 	rm -rf build
 	find osm_openvim -name '*.pyc' -delete
 	find osm_openvim -name '*.pyo' -delete
 
 prepare_lite:
-	pip install --user --upgrade setuptools
+	#pip install --user --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); \
-	echo "$$VER1.dev$$VER2+$$VER3" > build/OVIM_VERSION
+	#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 tox.ini build/
 	cp MANIFEST.in build/
-	sed -i "s/include OPENVIM_VERSION/include OVIM_VERSION/g" build/MANIFEST.in
+	#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 -i '/include openvimd/d' build/MANIFEST.in
@@ -39,12 +50,13 @@
 	sed -i "s/__import__(\"osm_openvim\.\"/__import__(\"lib_osm_openvim\.\"/g" build/lib_osm_openvim/ovim.py
 
 prepare:
-	pip install --user --upgrade setuptools
+	#pip install --user --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); \
-	echo "$$VER1.dev$$VER2+$$VER3" > build/OPENVIM_VERSION
+	#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 tox.ini build/
 	cp MANIFEST.in build/
 	cp README.rst build/
 	cp setup.py build/
@@ -61,17 +73,19 @@
 
 build: prepare
 	python -m py_compile build/osm_openvim/*.py
+	#cd build && tox -e flake8
 
 build_lite: prepare_lite
 	python -m py_compile build/lib_osm_openvim/*.py
+	#cd build && tox -e flake8
 
-pip: clean build
+pip: build
 	cd build && ./setup.py sdist
 
-pip_lite: clean build_lite
+pip_lite: build_lite
 	cd build && ./setup.py sdist
 
-package_openvim: clean prepare
+package_openvim: 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/
@@ -79,15 +93,14 @@
 	mkdir -p .build
 	cp build/deb_dist/python-*.deb .build/
 
-package_lib: clean prepare_lite
+package_lib_openvim: 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
+	#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
+	cd build && python setup.py --command-packages=stdeb.command bdist_deb
 	mkdir -p .build
 	cp build/deb_dist/python-*.deb .build/
 
-package: clean_deb package_openvim package_lib
-
 snap:
 	echo "Nothing to be done yet"
 
diff --git a/devops-stages/stage-build.sh b/devops-stages/stage-build.sh
index 8505499..c38c275 100755
--- a/devops-stages/stage-build.sh
+++ b/devops-stages/stage-build.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-make package
+make clean all
diff --git a/setup.py b/setup.py
index c136d4b..4d4073a 100755
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,6 @@
 from setuptools import setup
 
 __name = 'osm_openvim'
-__version = open('OPENVIM_VERSION').read().strip()
 __description = 'OSM Openvim'
 __author = 'ETSI OSM'
 __author_email = 'alfonso.tiernosepulveda@telefonica.com'
@@ -13,7 +12,7 @@
 __url = 'https://osm.etsi.org/gitweb/?p=osm/openvim.git;a=summary'
 
 _req = [
-    "asn1crypto",
+    #"asn1crypto",
     "cffi",
     "enum34",
     "functools32",
@@ -34,7 +33,8 @@
     "requestsexceptions",
     "netaddr",
     "bottle",
-    "MySQL-python",
+    #"MySQL-python",
+    #"mysqlclient",
     "paramiko",
     "libvirt-python",
     "pytest",
@@ -52,7 +52,7 @@
                'osm_openvim/scripts/get_dhcp_lease.sh']
 
 setup(name=__name,
-      version=__version,
+      version_command=('git describe', 'pep440-git'),
       description=__description,
       long_description=__description,
       author=__author,
@@ -69,7 +69,8 @@
       data_files = [('/etc/osm/', ['osm_openvim/openvimd.cfg']),
                    ('/etc/systemd/system/', ['osm_openvim/osm-openvim.service']),
                    ],
-      install_requires=_req
+      install_requires=_req,
+      setup_requires=['setuptools-version-command'],
       )
 
 
diff --git a/setup_lite.py b/setup_lite.py
index 171ea5d..7bb1c79 100755
--- a/setup_lite.py
+++ b/setup_lite.py
@@ -3,7 +3,6 @@
 from setuptools import setup
 
 __name = 'lib_osm_openvim'
-__version = open('OVIM_VERSION').read().strip()
 __description = 'OSM Openvim library'
 __author = 'ETSI OSM'
 __author_email = 'alfonso.tiernosepulveda@telefonica.com'
@@ -13,7 +12,7 @@
 __url = 'https://osm.etsi.org/gitweb/?p=osm/openvim.git;a=summary'
 
 _req = [
-    "asn1crypto",
+    #"asn1crypto",
     "cffi",
     "enum34",
     "functools32",
@@ -34,14 +33,15 @@
     "requestsexceptions",
     "netaddr",
     "bottle",
-    "MySQL-python",
+    #"MySQL-python",
+    #"mysqlclient",
     "paramiko"
 ]
 
 __scripts__ = ['openflow-lib']
 
 setup(name=__name,
-      version=__version,
+      version_command=('git describe', 'pep440-git'),
       description=__description,
       long_description=__description,
       author=__author,
@@ -55,7 +55,8 @@
       scripts=__scripts__,
       package_data={'lib_osm_openvim': ['*']},
       include_package_data=True,
-      install_requires=_req
+      install_requires=_req,
+      setup_requires=['setuptools-version-command'],
       )
 
 
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..025f4a0
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,22 @@
+[tox]
+#envlist = py27,py3
+envlist = py27
+toxworkdir={homedir}/.tox
+
+[testenv]
+deps=nose
+     mock
+commands=nosetests
+
+[testenv:flake8]
+basepython = python
+deps = flake8
+commands =
+    flake8 setup.py
+
+[testenv:build]
+basepython = python
+deps = stdeb
+       setuptools-version-command
+commands = python setup.py --command-packages=stdeb.command bdist_deb
+