]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix lp bug 897882
authorBrad Hall <brad@nicira.com>
Wed, 30 Nov 2011 21:10:31 +0000 (13:10 -0800)
committerBrad Hall <brad@nicira.com>
Wed, 4 Jan 2012 17:38:35 +0000 (09:38 -0800)
This moves the tree to having a standard setup.py.  For those who want to
build individual packages you'll need to use the setup_<package>.py files.

This allows us to support the traditional setup.py commands (i.e. sdist, etc)
that the openstack CI scripts will be using.

Change-Id: I7fe286d9973f43ae118a715276b0c089230f4f7e

MANIFEST.in
setup.py
tools/build_rpms.sh [deleted file]
tools/pip-requires

index fee445d39151baff61fad260219e52deaed13ceb..7980b7a481137d5938597c5ef861791544f0a587 100644 (file)
@@ -1,3 +1,4 @@
+include bin/*
 include etc/*
 include etc/init.d/*
 include etc/quantum/plugins/openvswitch/*
index 68c7a4599aa4296eb7f9d8a1439758f151d1d567..242f8320804a758c50d539a3fcef018d3b384719 100644 (file)
--- a/setup.py
+++ b/setup.py
-from copy import deepcopy
-from optparse import OptionParser
-from os import path
-import re
-import sys
-
-from tools import install_venv
-
-ROOT = path.abspath(path.dirname(__file__))
-CONFIG_PATH = path.abspath('/etc/quantum')
-BASE_PACKAGES = ['common', 'server', 'client']
-PLUGINS = ['sample_plugin', 'openvswitch_plugin', 'cisco_plugin']
-
-RELATIVE = False
-
-
-def clean_path(dirty):
-    """Makes sure path delimiters are OS compliant"""
-    return path.join(*dirty.split('/'))
-
-
-def script_dir():
-    global RELATIVE
-    script_dir = '/usr/sbin/'
-    if RELATIVE:
-        script_dir = 'usr/sbin/'
-    return script_dir
-
-
-def etc_dir():
-    global RELATIVE
-    etc_dir = '/etc/'
-    if RELATIVE:
-        etc_dir = 'etc/'
-    return etc_dir
-
-
-def create_parser():
-    """Setup the option parser"""
-    usagestr = "Usage: %prog [OPTIONS] <command> [args]"
-    parser = OptionParser(usage=usagestr)
-    parser.add_option("-V", "--virtualenv", "--venv", dest="venv",
-        action="store_true", default=False, help="Install to a virtual-env")
-    parser.add_option("-U", "--user", dest="user", action="store_true",
-        default=False, help="Install to users's home")
-    options, args = parser.parse_args()
-
-    if args.__len__() is 0:
-        print usagestr
-        print "Commands:\ninstall\nuninstall\nbuild\nclean"
-        exit(0)
-
-    cmd = args[0]
-    args = args[1:]
-    return (options, cmd, args)
-
-
-def install_packages(options, args=None):
-    """Builds and installs packages"""
-    # Start building a command list
-    cmd = ['python']
-
-    # If no options, just a regular install.  If venv, create, prepare and
-    # install in venv.  If --user install in user's local dir.  Usually
-    # ~/.local/
-    if options.venv:
-        if install_venv.VENV_EXISTS:
-            print "Virtual-env exists"
-        else:
-            install_venv.create_virtualenv(install_pip=False)
-        install_venv.install_dependencies()
-        cmd.insert(0, "tools/with_venv.sh")
-
-    # Install packages
-    # TODO(Tyler) allow users to pass in packages in cli
-    for package in BASE_PACKAGES + PLUGINS:
-        print "Installing %s" % package
-        # Each package needs its own command list, and it needs the path
-        # in the correct place (after "pip install")
-        pcmd = deepcopy(cmd)
-        pcmd.extend(["setup_%s.py" % package, "install"])
-
-        if options.venv:
-            pcmd.append("--root=%s" % install_venv.VENV)
+try:
+    from setuptools import setup, find_packages
+except ImportError:
+    from ez_setup import use_setuptools
+    use_setuptools()
+    from setuptools import setup, find_packages
 
-        if options.user:
-            pcmd.append('--user')
-
-        if package is 'client':
-            pcmd.append("--install-scripts=%s" % script_dir())
-
-        if package is 'server':
-            pcmd.append("--install-scripts=%s" % script_dir())
-            pcmd.append("--install-data=%s" % etc_dir())
-        print pcmd
-        install_venv.run_command(pcmd)
-        print "done."
-
-
-def uninstall_packages(options, args=None):
-    """Removes packages"""
-    cmd = ['pip', 'uninstall', '-y']
-
-    for package in ['quantum-' + x.split('/')[-1] \
-                    for x in BASE_PACKAGES + PLUGINS]:
-        print "Uninstalling %s" % package
-        # Each package needs its own command list, and it needs the path
-        # in the correct place (after "pip uninstall"
-        pcmd = deepcopy(cmd)
-        pcmd.insert(2, package)
-        print pcmd
-        install_venv.run_command(pcmd)
-        print "done."
-
-
-def build_packages(options, args=None):
-    """Build RPM and/or deb packages"""
-    if not args:
-        print "To build packages you must specifiy either 'rpm', " \
-              "'deb', or 'all'"
-        exit(0)
-    if args[0] not in ['rpm', 'deb', 'all']:
-        raise Exception("Packge type must be rpm, deb, or all")
-
-    if 'rpm' in args or 'all' in args:
-        # Since we need to cd to build rpms, we call this sh script
-        cmd = ['tools/build_rpms.sh']
-        for package in BASE_PACKAGES + PLUGINS:
-            print "Building %s rpm" % package
-            pcmd = deepcopy(cmd)
-            pcmd.append(package)
-            install_venv.run_command(pcmd)
-            print "done."
-
-    if 'deb' in args or 'all' in args:
-        cmd = ['tools/build_debs.sh']
-        for p in BASE_PACKAGES + PLUGINS:
-            print "Building %s deb" % p
-            pcmd = deepcopy(cmd)
-            pcmd.append(p)
-            install_venv.run_command(pcmd)
-        print "done."
-
-
-def clean_packages(options, args):
-    """Cleans build packages"""
-    cmd = ["tools/clean.sh"]
-    install_venv.run_command(cmd)
-
-
-def main():
-    """Main Build script for Quantum"""
-    global RELATIVE
-    options, cmd, args = create_parser()
-
-    if options.user:
-        RELATIVE = True
-
-    print "Checking for virtual-env and easy_install"
-    install_venv.check_dependencies()
-
-    # Execute command
-    try:
-        globals()["%s_packages" % cmd](options, args)
-    except KeyError as exc:
-        print "Command %s' not found" % exc.__str__().split('_')[0]
-
-if __name__ == "__main__":
-    main()
+import sys
+import version
+
+Name = 'quantum'
+Url = "https://launchpad.net/quantum"
+Version = version.get_git_version()
+License = 'Apache License 2.0'
+Author = 'Netstack'
+AuthorEmail = 'netstack@lists.launchpad.net'
+Maintainer = ''
+Summary = 'Quantum (virtual network service)'
+ShortDescription = Summary
+Description = Summary
+
+requires = [
+    'eventlet>=0.9.12',
+    'Routes>=1.12.3',
+    'nose',
+    'Paste',
+    'PasteDeploy',
+    'pep8>=0.6.1',
+    'python-gflags',
+    'simplejson',
+    'sqlalchemy',
+    'webob',
+    'webtest'
+]
+
+EagerResources = [
+    'quantum',
+]
+
+ProjectScripts = [
+]
+
+config_path = 'etc/quantum/'
+init_path = 'etc/init.d'
+ovs_plugin_config_path = 'etc/quantum/plugins/openvswitch'
+cisco_plugin_config_path = 'etc/quantum/plugins/cisco'
+
+print "config_path: %s" % config_path
+DataFiles = [
+    (config_path,
+        ['etc/quantum.conf', 'etc/quantum.conf.test', 'etc/plugins.ini']),
+    (init_path, ['etc/init.d/quantum-server']),
+    (ovs_plugin_config_path,
+        ['etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini']),
+    (cisco_plugin_config_path,
+        ['etc/quantum/plugins/cisco/credentials.ini',
+         'etc/quantum/plugins/cisco/l2network_plugin.ini',
+         'etc/quantum/plugins/cisco/nexus.ini',
+         'etc/quantum/plugins/cisco/ucs.ini',
+         'etc/quantum/plugins/cisco/cisco_plugins.ini',
+         'etc/quantum/plugins/cisco/db_conn.ini']),
+]
+
+setup(
+    name=Name,
+    version=Version,
+    url=Url,
+    author=Author,
+    author_email=AuthorEmail,
+    description=ShortDescription,
+    long_description=Description,
+    license=License,
+    scripts=ProjectScripts,
+    install_requires=requires,
+    include_package_data=False,
+    packages=find_packages('.'),
+    data_files=DataFiles,
+    eager_resources=EagerResources,
+    entry_points={
+        'console_scripts': [
+            'quantum-server = quantum.server:main',
+            'quantum = quantum.client.cli:main',
+        ]
+    },
+)
diff --git a/tools/build_rpms.sh b/tools/build_rpms.sh
deleted file mode 100755 (executable)
index 9775db0..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-python setup_$@.py bdist_rpm
index 14d96ede4e5c69290fa834ec394555fd6f755803..fda7c1b97a5a7e95a3902b4fcc6d4b91ce8fdf4a 100644 (file)
@@ -2,6 +2,7 @@ coverage
 distribute>=0.6.24
 eventlet>=0.9.12
 Routes>=1.12.3
+lxml==2.3
 nose
 nosexcover
 Paste