Merge pull request #1929 from lxbsz/wip-64471
[teuthology.git] / setup.py
1 from setuptools import setup, find_packages
2 import re
3
4 module_file = open("teuthology/__init__.py").read()
5 metadata = dict(re.findall(r"__([a-z]+)__\s*=\s*['\"]([^'\"]*)['\"]", module_file))
6 long_description = open('README.rst').read()
7
8 setup(
9     name='teuthology',
10     version=metadata['version'],
11     packages=find_packages(),
12     package_data={
13      'teuthology.task': ['adjust-ulimits', 'edit_sudoers.sh', 'daemon-helper'],
14      'teuthology.task': ['adjust-ulimits', 'edit_sudoers.sh', 'daemon-helper'],
15      'teuthology.openstack': [
16          'archive-key',
17          'archive-key.pub',
18          'openstack-centos-6.5-user-data.txt',
19          'openstack-centos-7.0-user-data.txt',
20          'openstack-centos-7.1-user-data.txt',
21          'openstack-centos-7.2-user-data.txt',
22          'openstack-debian-8.0-user-data.txt',
23          'openstack-opensuse-42.1-user-data.txt',
24          'openstack-teuthology.cron',
25          'openstack-teuthology.init',
26          'openstack-ubuntu-12.04-user-data.txt',
27          'openstack-ubuntu-14.04-user-data.txt',
28          'openstack-user-data.txt',
29          'openstack.yaml',
30          'setup-openstack.sh'
31      ],
32     },
33     author='Inktank Storage, Inc.',
34     author_email='ceph-qa@ceph.com',
35     description='Ceph test framework',
36     license='MIT',
37     keywords='teuthology test ceph cluster',
38     url='https://github.com/ceph/teuthology',
39     long_description=long_description,
40     classifiers=[
41         'Intended Audience :: Developers',
42         'License :: OSI Approved :: MIT License',
43         'Natural Language :: English',
44         'Operating System :: POSIX :: Linux',
45         'Programming Language :: Python :: 3.6',
46         'Topic :: Software Development :: Quality Assurance',
47         'Topic :: Software Development :: Testing',
48         'Topic :: System :: Distributed Computing',
49         'Topic :: System :: Filesystems',
50     ],
51     install_requires=['apache-libcloud',
52                       'gevent',
53                       'PyYAML',
54                       'argparse >= 1.2.1',
55                       'configobj',
56                       'six >= 1.9', # python-openstackclient won't work properly with less
57                       'pexpect',
58                       'docopt',
59                       'netaddr',  # teuthology/misc.py
60                       # only used by orchestra, but we monkey-patch it in
61                       # teuthology/__init__.py
62                       'paramiko',
63                       'psutil >= 2.1.0',
64                       'configparser',
65                       'ansible>=2.0',
66                       'prettytable',
67                       'rocket-python >= 1.2.15',
68                       'manhole',
69                       'humanfriendly',
70                       ],
71     extras_require = {
72         'orchestra': [
73             # For apache-libcloud when using python < 2.7.9
74             'backports.ssl_match_hostname',
75             'beanstalkc3 >= 0.4.0',
76             'httplib2',
77             'ndg-httpsclient',  # for requests, urllib3
78             'pyasn1',           # for requests, urllib3
79             'pyopenssl>=0.13',  # for requests, urllib3
80             'python-dateutil',
81             # python-novaclient is specified here, even though it is
82             # redundant, because python-openstackclient requires
83             # Babel, and installs 2.3.3, which is forbidden by
84             # python-novaclient 4.0.0
85             'python-novaclient',
86             'python-openstackclient',
87             # with openstacklient >= 2.1.0, neutronclient no longer is
88             # a dependency but we need it anyway.
89             'python-neutronclient',
90             'requests != 2.13.0',
91             'sentry-sdk',
92         ],
93         'test': [
94             'boto >= 2.0b4',       # for qa/tasks/radosgw_*.py
95             'cryptography >= 2.7',  # for qa/tasks/mgr/dashboard/test_rgw.py
96             'nose', # for qa/tasks/rgw_multisite_tests.py',
97             'pip-tools',
98             'pytest',           # for tox.ini
99             'requests',         # for qa/tasks/mgr/dashboard/helper.py
100             'tox',
101             # For bucket notification testing in multisite
102             'xmltodict',
103             'boto3',
104             'PyJWT',            # for qa/tasks/mgr/dashboard/test_auth.py
105             'ipy',              # for qa/tasks/cephfs/mount.py
106             'toml',             # for qa/tasks/cephadm.py
107         ]
108     },
109
110
111     # to find the code associated with entry point
112     # A.B:foo first cd into directory A, open file B
113     # and find sub foo
114     entry_points={
115         'console_scripts': [
116             'teuthology = scripts.run:main',
117             'teuthology-openstack = scripts.openstack:main',
118             'teuthology-nuke = scripts.nuke:main',
119             'teuthology-suite = scripts.suite:main',
120             'teuthology-ls = scripts.ls:main',
121             'teuthology-worker = scripts.worker:main',
122             'teuthology-lock = scripts.lock:main',
123             'teuthology-schedule = scripts.schedule:main',
124             'teuthology-updatekeys = scripts.updatekeys:main',
125             'teuthology-update-inventory = scripts.update_inventory:main',
126             'teuthology-results = scripts.results:main',
127             'teuthology-report = scripts.report:main',
128             'teuthology-kill = scripts.kill:main',
129             'teuthology-queue = scripts.queue:main',
130             'teuthology-prune-logs = scripts.prune_logs:main',
131             'teuthology-describe = scripts.describe:main',
132             'teuthology-reimage = scripts.reimage:main',
133             'teuthology-dispatcher = scripts.dispatcher:main',
134             'teuthology-wait = scripts.wait:main',
135             ],
136         },
137
138     )