setup.py 3.8 KB
Newer Older
Łukasz Nowak's avatar
Łukasz Nowak committed
1 2 3
from setuptools import setup, find_packages
import glob
import os
4 5 6

from slapos.version import version

Łukasz Nowak's avatar
Łukasz Nowak committed
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
name = 'slapos.core'
long_description = open("README.txt").read() + "\n" + \
    open("CHANGES.txt").read() + "\n"

for f in sorted(glob.glob(os.path.join('slapos', 'README.*.txt'))):
  long_description += '\n' + open(f).read() + '\n'

additional_install_requires = []
# Even if argparse is available in python2.7, some python2.7 installations
# do not have it, so checking python version is dangerous
try:
  import argparse
except ImportError:
  additional_install_requires.append('argparse')

setup(name=name,
      version=version,
      description="SlapOS core.",
      long_description=long_description,
      classifiers=[
          "Programming Language :: Python",
        ],
Łukasz Nowak's avatar
Łukasz Nowak committed
29
      keywords='slapos core',
Łukasz Nowak's avatar
Łukasz Nowak committed
30
      license='GPLv3',
31 32
      url='http://www.slapos.org',
      author='VIFIB',
Łukasz Nowak's avatar
Łukasz Nowak committed
33 34 35 36
      namespace_packages=['slapos'],
      packages=find_packages(),
      include_package_data=True,
      install_requires=[
37 38 39 40 41 42 43 44 45 46
          'Flask', # used by proxy
          'lxml', # needed to play with XML trees
          'netaddr>=0.7.5', # to play safely with IPv6 prefixes
          'netifaces', # to fetch information about network devices
          'setuptools', # namespaces
          'supervisor', # slapgrid uses supervisor to manage processes
          'xml_marshaller>=0.9.3', # to unmarshall/marshall python objects to/from
                                   # XML
          'zope.interface', # slap library implementes interfaces
          'zc.buildout',
47
          'cliff',
Łukasz Nowak's avatar
Łukasz Nowak committed
48
        ] + additional_install_requires,
49
      extra_requires={'docs': ('Sphinx', 'repoze.sphinx.autointerface'),},
50 51 52 53
      tests_require=[
          'unittest2',
          'pyflakes',
      ],
Łukasz Nowak's avatar
Łukasz Nowak committed
54 55 56 57
      zip_safe=False, # proxy depends on Flask, which has issues with
                      # accessing templates
      entry_points={
        'console_scripts': [
58
          # One entry point to control them all
59
          'slapos-watchdog = slapos.grid.watchdog:main',
60 61
          'slapproxy = slapos.proxy:main',
          'slapproxy-query = slapos.proxy.query:main',
62
          # Deprecated entry points
63
          'slapos = slapos.cli_legacy.entry:main',
64
          'slapconsole = slapos.cli_legacy.console:console',
65
          'slapformat = slapos.cli_legacy.format:main',
Łukasz Nowak's avatar
Łukasz Nowak committed
66 67 68
          'slapgrid-sr = slapos.grid.slapgrid:runSoftwareRelease',
          'slapgrid-cp = slapos.grid.slapgrid:runComputerPartition',
          'slapgrid-ur = slapos.grid.slapgrid:runUsageReport',
69 70
          'slapgrid-supervisorctl = slapos.cli_legacy.svcbackend:supervisorctl',
          'slapgrid-supervisord = slapos.cli_legacy.svcbackend:supervisord',
71
          'bang = slapos.cli_legacy.bang:main',
72 73 74
          'slap2 = slapos.cli.entry:main',
        ],
        'slapos.cli': [
Marco Mariani's avatar
Marco Mariani committed
75 76
          'cache lookup = slapos.cli.cache:CacheLookupCommand',
          'node bang = slapos.cli.bang:BangCommand',
Marco Mariani's avatar
Marco Mariani committed
77
          'node format = slapos.cli.format:FormatCommand',
78
          'node register = slapos.cli.register:RegisterCommand',
79 80 81 82 83 84
          'node supervisord = slapos.cli.supervisord:SupervisordCommand',
          'node supervisorctl = slapos.cli.supervisorctl:SupervisorctlCommand',
          'node status = slapos.cli.supervisorctl:SupervisorctlStatusCommand',
          'node start = slapos.cli.supervisorctl:SupervisorctlStartCommand',
          'node stop = slapos.cli.supervisorctl:SupervisorctlStopCommand',
          'node restart = slapos.cli.supervisorctl:SupervisorctlRestartCommand',
Marco Mariani's avatar
Marco Mariani committed
85
          'node tail = slapos.cli.supervisorctl:SupervisorctlTailCommand',
Marco Mariani's avatar
Marco Mariani committed
86
          'console = slapos.cli.console:ConsoleCommand',
87 88
          'supply = slapos.cli.supply:SupplyCommand',
          'remove = slapos.cli.remove:RemoveCommand',
Marco Mariani's avatar
Marco Mariani committed
89
          'request = slapos.cli.request:RequestCommand',
Łukasz Nowak's avatar
Łukasz Nowak committed
90 91
        ]
      },
Łukasz Nowak's avatar
Łukasz Nowak committed
92
      test_suite="slapos.tests",
Łukasz Nowak's avatar
Łukasz Nowak committed
93
    )