setup.py 5.63 KB
Newer Older
1 2 3 4
from setuptools import setup, find_packages
import glob
import os

Thomas Gambier's avatar
Thomas Gambier committed
5
version = '0.82'
6
name = 'slapos.toolbox'
7
long_description = open("README.rst").read() + "\n"
8

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

12 13
long_description += open("CHANGES.txt").read() + "\n"

14 15 16 17 18 19 20
# Provide a way to install additional requirements
additional_install_requires = []
try:
  import argparse
except ImportError:
  additional_install_requires.append('argparse')

21 22 23 24 25 26 27 28 29 30 31 32
setup(name=name,
      version=version,
      description="SlapOS toolbox.",
      long_description=long_description,
      classifiers=[
          "Programming Language :: Python",
        ],
      keywords='slapos toolbox',
      license='GPLv3',
      namespace_packages=['slapos'],
      packages=find_packages(),
      include_package_data=True,
33 34 35
      maintainer="Nexedi",
      maintainer_email="info@nexedi.com",
      url="https://lab.nexedi.com/nexedi/slapos.toolbox",
36 37
      install_requires=[
        'Flask', # needed by servers
Antoine Catton's avatar
Antoine Catton committed
38 39
        'atomize', # needed by pubsub
        'feedparser', # needed by pubsub
40
        'apache_libcloud>=0.4.0', # needed by cloudmgr
41
        'lockfile', # used by equeue
42 43 44 45 46 47
        'lxml', # needed for xml parsing
        'paramiko', # needed by cloudmgr
        'psutil', # needed for playing with processes in portable way
        'setuptools', # namespaces
        'slapos.core', # as it provides library for slap
        'xml_marshaller', # needed to dump information
48
        'GitPython', #needed for git manipulation into slaprunner
49 50
        'croniter', # needed to know cron schedule
        'pytz', # needed to manipulate timezone
51
        'passlib',
52
        'netifaces',
53
        'erp5.util',
54
        'PyRSS2Gen',
55
        'dnspython',
56
        'requests',
57
        'jsonschema',
58
        'zc.buildout',
59
      ] + additional_install_requires,
60
      extras_require = {
61
        'lampconfigure':  ["mysqlclient"], #needed for MySQL Database access
62
        'zodbpack': ['ZODB3'], # needed to play with ZODB
63
        'flask_auth' : ["Flask-Auth"],
64
        'networkbench' : ['pycurl'],
65
        'check_web_page_http_cache_hit' : ['pycurl'], # needed for check_web_page_http_cache_hit module
66
      },
67 68
      tests_require = [
        'mock',
69
        'pycurl'
70
      ],
71 72 73 74
      zip_safe=False, # proxy depends on Flask, which has issues with
                      # accessing templates
      entry_points={
        'console_scripts': [
75
          'agent = slapos.agent.agent:main',
76
          'apache-mpm-watchdog = slapos.promise.apache_mpm_watchdog:main',
77
          'check-computer-memory = slapos.promise.check_computer_memory:main',
78
          'check-web-page-http-cache-hit = slapos.promise.check_web_page_http_cache_hit:main',
79
          'check-feed-as-promise = slapos.checkfeedaspromise:main',
80
          'check-error-on-apache-log = slapos.promise.check_error_on_apache_log:main',
81 82
          'check-apachedex-result = slapos.promise.check_apachedex_result:main',
          'check-slow-queries-digest-result = slapos.promise.check_slow_queries_digest_result:main',
83
          'check-re6st-optimal-status = slapos.promise.check_re6st_optimal_status:main',
84 85 86 87 88 89 90
          'clouddestroy = slapos.cloudmgr.destroy:main',
          'cloudgetprivatekey = slapos.cloudmgr.getprivatekey:main',
          'cloudgetpubliciplist = slapos.cloudmgr.getpubliciplist:main',
          'cloudlist = slapos.cloudmgr.list:main',
          'cloudmgr = slapos.cloudmgr.cloudmgr:main',
          'cloudstart = slapos.cloudmgr.start:main',
          'cloudstop = slapos.cloudmgr.stop:main',
91
          'equeue = slapos.equeue:main',
92
          'generatefeed = slapos.generatefeed:main',
93
          'htpasswd = slapos.htpasswd:main',
94
          'is-local-tcp-port-opened = slapos.promise.is_local_tcp_port_opened:main',
95
          'is-process-older-than-dependency-set = slapos.promise.is_process_older_than_dependency_set:main',
96
          'is-icmp-packet-lost = slapos.promise.is_icmp_packet_lost:main',
97
          'killpidfromfile = slapos.systool:killpidfromfile', # BBB
98 99
          'monitor.bootstrap = slapos.monitor.monitor:main',
          'monitor.collect = slapos.monitor.collect:main',
100
          'monitor.statistic = slapos.monitor.build_statistic:main',
101 102
          'monitor.runpromise = slapos.monitor.runpromise:main',
          'monitor.genstatus = slapos.monitor.globalstate:main',
103
          'monitor.configwrite = slapos.monitor.monitor_config_write:main',
104 105
          'runResiliencyUnitTestTestNode = slapos.resiliencytest:runUnitTest',
          'runResiliencyScalabilityTestNode = slapos.resiliencytest:runResiliencyTest',
Hardik Juneja's avatar
Hardik Juneja committed
106
          'runApacheDex = slapos.apachedex:main',
107
          'lampconfigure = slapos.lamp:run [lampconfigure]',
Nicolas Delaby's avatar
Nicolas Delaby committed
108
          'onetimedownload = slapos.onetimedownload:main',
109 110 111
          'onetimeupload = slapos.onetimeupload:main',
          'pubsubnotifier = slapos.pubsub.notifier:main',
          'pubsubserver = slapos.pubsub:main',
112
          'qemu-qmp-client = slapos.qemuqmpclient:main',
113
          'rdiffbackup.genstatrss = slapos.resilient.rdiffBackupStat2RSS:main',
114
          'runner-exporter = slapos.resilient.runner_exporter:runExport',
115
          'runner-importer-post-notification-run = slapos.resilient.runner_importer:postNotificationRun',
116
          'securedelete = slapos.securedelete:main',
117
          'slapos-kill = slapos.systool:kill',
118
          'slaprunnertest = slapos.runner.runnertest:main',
119
          'slaprunnerteststandalone = slapos.runner.runnertest:runStandaloneUnitTest',
120
          'zodbpack = slapos.zodbpack:run [zodbpack]',
121 122
          'networkbench = slapos.networkbench:main',
          'cachechecker = slapos.cachechecker:web_checker_utility'
123 124
        ]
      },
125
      test_suite='slapos.test',
Rafael Monnerat's avatar
Rafael Monnerat committed
126
    )