Restructuring code in osm_ro folder, and setup based on MANIFEST
Also updated Makefile and service-openmano.sh

Change-Id: I60cf49013315efafd73de377452e38faf2f2f1e0
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..154ea27
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,9 @@
+#include MANIFEST.in
+#include requirements.txt
+include README.rst
+include openmano
+include openmanod.py
+include openmanod.cfg
+include osm-ro.service
+recursive-include osm_ro *
+
diff --git a/Makefile b/Makefile
index b5e6960..76a2990 100644
--- a/Makefile
+++ b/Makefile
@@ -2,42 +2,47 @@
 all: pypackage debpackage
 
 prepare:
-	mkdir -p build
-	cp *.py build/
-	#cd build; mv openmanod.py openmanod
-	cp openmano build/
-	cp openmanod.cfg build/
+	mkdir -p build/
+	cp MANIFEST.in build/
 	cp requirements.txt build/
 	cp README.rst build/
-	cp openmano.service build/
-	cp -r vnfs build/
-	cp -r scenarios build/
-	cp -r instance-scenarios build/
-	cp -r scripts build/
-	cd build/scripts; mv service-openmano.sh service-openmano; mv openmano-report.sh openmano-report
-	cp -r database_utils build/
+	cp setup.py build/
+	cp -r osm_ro build/
+	cp openmano build/
+	cp openmanod.py build/
+	cp openmanod.cfg build/
+	cp osm-ro.service build/
+	cp -r vnfs build/osm_ro
+	cp -r scenarios build/osm_ro
+	cp -r instance-scenarios build/osm_ro
+	cp -r scripts build/osm_ro
+	cp -r database_utils build/osm_ro
 
 connectors: prepare
 	# python-novaclient is required for that
-	rm -f build/openmanolinkervimconn.py
-	cd build; for i in `ls vimconn_*.py |sed "s/\.py//"` ; do echo "import $$i" >> openmanolinkervimconn.py; done
-	python build/openmanolinkervimconn.py
-	rm -f build/openmanolinkervimconn.py
+	rm -f build/osm_ro/openmanolinkervimconn.py
+	cd build/osm_ro; for i in `ls vimconn_*.py |sed "s/\.py//"` ; do echo "import $$i" >> openmanolinkervimconn.py; done
+	python build/osm_ro/openmanolinkervimconn.py
+	rm -f build/osm_ro/openmanolinkervimconn.py
 
-build: prepare
-	python -m py_compile build/*.py
+build: connectors prepare
+	python -m py_compile build/osm_ro/*.py
 
-pypackage: build
+pypackage: prepare
 	cd build; ./setup.py sdist
-	#cp build/dist/* /root/artifacts/...
+	cd build; ./setup.py bdist_wheel
 
-debpackage: build
-	echo "Nothing to be done yet"
+debpackage: prepare
+	echo "Nothing to be done"
+	#cd build; ./setup.py --command-packages=stdeb.command bdist_deb
 	#fpm -s python -t deb build/setup.py
 
 snappackage:
 	echo "Nothing to be done yet"
 
+sync:
+	#cp build/dist/* /root/artifacts/...
+
 test:
 	./test/basictest.sh --force --insert-bashrc --install-openvim --init-openvim
 
diff --git a/openmano.service b/openmano.service
deleted file mode 100644
index cc8966c..0000000
--- a/openmano.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=openmano server (OSM RO)
-
-[Service]
-User=${USER_OWNER}
-ExecStart=openmanod -c /etc/osm/openmanod.cfg --log-file=/var/log/osm/openmano.log
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
-
diff --git a/openmanod.py b/openmanod.py
index 03901c3..bb32339 100755
--- a/openmanod.py
+++ b/openmanod.py
@@ -37,19 +37,17 @@
 version_date="Jan 2017"
 database_version="0.19"      #expected database schema version
 
-import httpserver
 import time
 import sys
 import getopt
 import yaml
-import nfvo_db
 from jsonschema import validate as js_v, exceptions as js_e
-from openmano_schemas import config_schema
-from db_base import db_base_Exception
-import nfvo
 import logging
 import logging.handlers as log_handlers
 import socket
+from osm_ro import httpserver, nfvo, nfvo_db
+from osm_ro.openmano_schemas import config_schema
+from osm_ro.db_base import db_base_Exception
 
 global global_config
 global logger
diff --git a/osm-ro.service b/osm-ro.service
new file mode 100644
index 0000000..155150b
--- /dev/null
+++ b/osm-ro.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=openmano server (OSM RO)
+
+[Service]
+User=${USER_OWNER}
+ExecStart=openmanod.py -c /etc/osm/openmanod.cfg --log-file=/var/log/osm/openmano.log
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/console_proxy_thread.py b/osm_ro/console_proxy_thread.py
similarity index 100%
rename from console_proxy_thread.py
rename to osm_ro/console_proxy_thread.py
diff --git a/db_base.py b/osm_ro/db_base.py
similarity index 100%
rename from db_base.py
rename to osm_ro/db_base.py
diff --git a/httpserver.py b/osm_ro/httpserver.py
similarity index 100%
rename from httpserver.py
rename to osm_ro/httpserver.py
diff --git a/nfvo.py b/osm_ro/nfvo.py
similarity index 100%
rename from nfvo.py
rename to osm_ro/nfvo.py
diff --git a/nfvo_db.py b/osm_ro/nfvo_db.py
similarity index 100%
rename from nfvo_db.py
rename to osm_ro/nfvo_db.py
diff --git a/openmano_schemas.py b/osm_ro/openmano_schemas.py
similarity index 100%
rename from openmano_schemas.py
rename to osm_ro/openmano_schemas.py
diff --git a/openmanoclient.py b/osm_ro/openmanoclient.py
similarity index 100%
rename from openmanoclient.py
rename to osm_ro/openmanoclient.py
diff --git a/utils.py b/osm_ro/utils.py
similarity index 100%
rename from utils.py
rename to osm_ro/utils.py
diff --git a/vim_thread.py b/osm_ro/vim_thread.py
similarity index 100%
rename from vim_thread.py
rename to osm_ro/vim_thread.py
diff --git a/vimconn.py b/osm_ro/vimconn.py
similarity index 100%
rename from vimconn.py
rename to osm_ro/vimconn.py
diff --git a/vimconn_openstack.py b/osm_ro/vimconn_openstack.py
similarity index 100%
rename from vimconn_openstack.py
rename to osm_ro/vimconn_openstack.py
diff --git a/vimconn_openvim.py b/osm_ro/vimconn_openvim.py
similarity index 100%
rename from vimconn_openvim.py
rename to osm_ro/vimconn_openvim.py
diff --git a/vimconn_vmware.py b/osm_ro/vimconn_vmware.py
similarity index 100%
rename from vimconn_vmware.py
rename to osm_ro/vimconn_vmware.py
diff --git a/vmwarecli.py b/osm_ro/vmwarecli.py
similarity index 100%
rename from vmwarecli.py
rename to osm_ro/vmwarecli.py
diff --git a/vmwarerecli.py b/osm_ro/vmwarerecli.py
similarity index 100%
rename from vmwarerecli.py
rename to osm_ro/vmwarerecli.py
diff --git a/requirements.txt b/requirements.txt
index 0f6b6f6..38c055c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,21 +1,21 @@
 --index-url https://pypi.python.org/simple/
 
-PyYAML==3.10
-bottle==0.12.7
-PyMySQL==0.7.2
-jsonschema==2.5.1
-paramiko==1.16.0
-argcomplete==0.8.1
-requests==2.13.0
-logutils==0.3.3
-python-cinderclient==1.6.0
-python-glanceclient==2.0.0
-python-keystoneclient==2.3.1
-python-neutronclient==4.1.1
-python-novaclient==3.3.1
-pyvcloud==16
-pyvmomi==6.5
-progressbar==2.3
-prettytable==0.7.2
-boto==2.38.0
+PyYAML
+bottle
+MySQL-python
+jsonschema
+paramiko
+argcomplete
+requests
+logutils
+python-novaclient
+python-keystoneclient
+python-glanceclient
+python-neutronclient
+python-cinderclient
+pyvcloud
+pyvmomi
+progressbar
+prettytable
+boto
 
diff --git a/scripts/service-openmano.sh b/scripts/service-openmano.sh
index 1a48d4a..0224d20 100755
--- a/scripts/service-openmano.sh
+++ b/scripts/service-openmano.sh
@@ -116,7 +116,7 @@
             running=y
         done
         #if installed as a service and it is not provided a screen name call service
-        [[ -f /etc/systemd/system/openmano.service ]] && [[ -z $option_screen_name ]] && running=y #&& service openmano status
+        [[ -f /etc/systemd/system/osm-ro.service ]] && [[ -z $option_screen_name ]] && running=y #&& service osm-ro status
         if [ -z "$running" ]
         then
             echo -n "    $om_name not running" && [[ -n "$option_screen_name" ]] && echo " on screen '$option_screen_name'" || echo
@@ -124,7 +124,7 @@
     fi
 
     #if installed as a service and it is not provided a screen name call service
-    [[ -f /etc/systemd/system/openmano.service ]] && [[ -z $option_screen_name ]] && service openmano $om_action && ( [[ $om_action == status ]] || sleep 5 ) && exit $?
+    [[ -f /etc/systemd/system/osm-ro.service ]] && [[ -z $option_screen_name ]] && service osm-ro $om_action && ( [[ $om_action == status ]] || sleep 5 ) && exit $?
 
 
     #stop
diff --git a/setup.py b/setup.py
index 2d2d07a..68781be 100755
--- a/setup.py
+++ b/setup.py
@@ -1,68 +1,69 @@
 #!/usr/bin/env python
 
 from setuptools import setup
+from setuptools.command.install import install
+from os import system
 #import glob
 
-requirements = [
+_name = 'osm_ro'
+_version = '1.0.0'
+_description = 'OSM Resource Orchestrator'
+_author = 'ETSI OSM'
+_author_email = 'alfonso.tiernosepulveda@telefonica.com'
+_maintainer = 'garciadeblas'
+_maintainer_email = 'gerardo.garciadeblas@telefonica.com'
+_license = 'Apache 2.0'
+_url = 'https://osm.etsi.org/gitweb/?p=osm/RO.git;a=summary'
+_requirements = [
     "PyYAML",
     "bottle",
-    "mysqldb",
+    "MySQL-python",
     "jsonschema",
     "paramiko",
     "argcomplete",
     "requests",
     "logutils",
-    "pip",
-    "novaclient",
-    "keystoneclient",
-    "glanceclient",
-    "neutronclient",
-    "cinderclient",
-    "boto",
+    "python-novaclient",
+    "python-keystoneclient",
+    "python-glanceclient",
+    "python-neutronclient",
+    "python-cinderclient",
     "pyvcloud",
     "progressbar",
     "prettytable",
     "pyvmomi",
+    "boto",
 ]
 
-setup(name='osm-ro',
-      version='1.0',
-      description='OSM Resource Orchestrator',
-      long_description=open('README.rst').read(),
-      author='ETSI OSM',
-      author_email='alfonso.tiernosepulveda@telefonica.com',
-      maintainer='garciadeblas',
-      maintainer_email='gerardo.garciadeblas@telefonica.com',
-      url='https://osm.etsi.org/gitweb/?p=osm/RO.git;a=summary',
-      license='Apache 2.0',
-      #packages=['ro-server', 'ro-client'],
-      #py_modules=glob.glob('*.py')
-      py_modules=['console_proxy_thread',
-                  'db_base',
-                  'httpserver',
-                  'nfvo_db',
-                  'nfvo',
-                  'openmanoclient',
-                  'openmanoconfig',
-                  'openmanod',
-                  'openmano_schemas',
-                  'utils',
-                  'vimconn_openstack',
-                  'vimconn_openvim',
-                  'vimconn',
-                  'vimconn_vmware',
-                  'vmwarecli',
-                  'vmwarerecli',
-                 ],
-     install_requires=requirements,
-     #package_data={'': ['vnfs', 'scenarios', 'instance-scenarios', 'database_utils/mano_db_structure.sql']}
-     data_files=[('/etc/osm/', ['openmanod.cfg']),
-                 ('/etc/systemd/system/', ['openmano.service']),
-                 ('vnfs', ['vnfs']),
-                 ('scenarios', ['scenarios']),
-                 ('instance-scenarios', ['instance-scenarios']),
-                 ('database_utils', ['database-utils']),
-                ],
-     scripts=['openmanod.py', 'openmano', 'scripts/service-openmano', 'scripts/openmano-report',]
-     )
+class ROInstaller(install):
+    def run(self):
+        cmd = 'echo "Running install script"'
+        system(cmd)
+        install.run(self)
+
+setup(name=_name,
+      version = _version,
+      description = _description,
+      long_description = open('README.rst').read(),
+      author = _author,
+      author_email = _author_email,
+      maintainer = _maintainer,
+      maintainer_email = _maintainer_email,
+      url = _url,
+      license = _license,
+      packages = [_name],
+      #packages = ['osm_ro', 'osm_roclient'],
+      package_dir = {_name: _name},
+      package_data = {_name: ['vnfs/*.yaml', 'vnfs/examples/*.yaml',
+                         'scenarios/*.yaml', 'scenarios/examples/*.yaml',
+                         'instance-scenarios/examples/*.yaml', 'database_utils/*',
+                         'scripts/install-openmano*.sh']},
+      data_files = [('/etc/osm/', ['openmanod.cfg']),
+                   ('/etc/systemd/system/', ['osm-ro.service']),
+                   ],
+      scripts=['openmanod.py', 'openmano', 'osm_ro/scripts/service-openmano.sh', 'osm_ro/scripts/openmano-report.sh',],
+      install_requires=_requirements,
+      include_package_data=True,
+      cmdclass = {'install': ROInstaller},
+      )