setup.py 11.5 KB
Newer Older
Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
##############################################################################
#
# Copyright (c) 2010-2013 Vifib SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################
27
from setuptools import setup, find_packages
28 29
import glob
import os
30

Marco Mariani's avatar
Marco Mariani committed
31
version = '0.89'
32
name = 'slapos.cookbook'
33
long_description = open("README.txt").read() + "\n" + \
34 35
    open("CHANGES.txt").read() + "\n"

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

39 40
# extras_requires are not used because of
#   https://bugs.launchpad.net/zc.buildout/+bug/85604
41 42
setup(name=name,
      version=version,
43
      description="SlapOS recipes.",
44 45 46 47 48
      long_description=long_description,
      classifiers=[
          "Framework :: Buildout :: Recipe",
          "Programming Language :: Python",
        ],
Łukasz Nowak's avatar
Łukasz Nowak committed
49
      keywords='slapos recipe',
50 51 52 53 54
      license='GPLv3',
      namespace_packages=['slapos', 'slapos.recipe'],
      packages=find_packages(),
      include_package_data=True,
      install_requires=[
55
        'jsonschema',
56
        'hexagonit.recipe.download',
57
        'lxml', # for full blown python interpreter
58 59
        'netaddr', # to manipulate on IP addresses
        'setuptools', # namespaces
60
        'inotifyx', # to watch filesystem changes (used in lockfile)
61
        'lock_file', #another lockfile implementation for multiprocess
62
        'slapos.core', # uses internally
Łukasz Nowak's avatar
Łukasz Nowak committed
63
#        'slapos.toolbox', # needed for libcloud, cloudmgr, disabled for now
64 65 66
        'xml_marshaller', # need to communication with slapgrid
        'zc.buildout', # plays with buildout
        'zc.recipe.egg', # for scripts generation
67
        'pytz', # for timezone database
68 69
        ],
      zip_safe=True,
70 71
      entry_points={
        'zc.buildout': [
Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
72
          'addresiliency = slapos.recipe.addresiliency:Recipe',
73
          'accords = slapos.recipe.accords:Recipe',
74
          'agent = slapos.recipe.agent:Recipe',
75
          'apache.zope.backend = slapos.recipe.apache_zope_backend:Recipe',
76
          'apacheperl = slapos.recipe.apacheperl:Recipe',
Antoine Catton's avatar
Antoine Catton committed
77
          'apachephp = slapos.recipe.apachephp:Recipe',
78
          'apachephpconfigure = slapos.recipe.apachephpconfigure:Recipe',
Antoine Catton's avatar
Antoine Catton committed
79
          'apacheproxy = slapos.recipe.apacheproxy:Recipe',
80
          'boinc = slapos.recipe.boinc:Recipe',
81 82
          'boinc.app = slapos.recipe.boinc:App',
          'boinc.client = slapos.recipe.boinc:Client',
83 84
          'bonjourgrid = slapos.recipe.bonjourgrid:Recipe',
          'bonjourgrid.client = slapos.recipe.bonjourgrid:Client',
85
          'certificate_authority = slapos.recipe.certificate_authority:Recipe',
86 87
          'certificate_authority.request = slapos.recipe.certificate_authority:Request',
          'check_page_content = slapos.recipe.check_page_content:Recipe',
88
          'check_port_listening = slapos.recipe.check_port_listening:Recipe',
89
          'check_url_available = slapos.recipe.check_url_available:Recipe',
90
          'cloud9 = slapos.recipe.cloud9:Recipe',
91
          'cloudooo.test = slapos.recipe.erp5_test:CloudoooRecipe',
92
          'condor = slapos.recipe.condor:Recipe',
93
          'condor.submit = slapos.recipe.condor:AppSubmit',
94
          'configurationfile = slapos.recipe.configurationfile:Recipe',
95
          'copyfilelist = slapos.recipe.copyfilelist:Recipe',
96
          'cron = slapos.recipe.dcron:Recipe',
97
          'cron.d = slapos.recipe.dcron:Part',
98
          'davstorage = slapos.recipe.davstorage:Recipe',
99
          'downloader = slapos.recipe.downloader:Recipe',
100
          'dropbear = slapos.recipe.dropbear:Recipe',
101
          'dropbear.add_authorized_key = slapos.recipe.dropbear:AddAuthorizedKey',
102
          'dropbear.client = slapos.recipe.dropbear:Client',
103
          'dumpmdb = slapos.recipe.dumpmdb:Recipe',
104
          'duplicity = slapos.recipe.duplicity:Recipe',
105
          'egg_test = slapos.recipe.erp5_test:EggTestRecipe',
Antoine Catton's avatar
Antoine Catton committed
106
          'equeue = slapos.recipe.equeue:Recipe',
107 108 109 110
          'erp5.bootstrap = slapos.recipe.erp5_bootstrap:Recipe',
          'erp5.promise = slapos.recipe.erp5_promise:Recipe',
          'erp5.test = slapos.recipe.erp5_test:Recipe',
          'erp5.update = slapos.recipe.erp5_update:Recipe',
111 112
          'erp5scalabilitytestbed = slapos.recipe.erp5scalabilitytestbed:Recipe',
          'erp5testnode = slapos.recipe.erp5testnode:Recipe',
113 114
          'firefox = slapos.recipe.firefox:Recipe',
          'fontconfig = slapos.recipe.fontconfig:Recipe',
115
          'generate.mac = slapos.recipe.generatemac:Recipe',
116
          'generate.password = slapos.recipe.generatepassword:Recipe',
117
          'generic.cloudooo = slapos.recipe.generic_cloudooo:Recipe',
118 119 120
          'generic.kumofs = slapos.recipe.generic_kumofs:Recipe',
          'generic.memcached = slapos.recipe.generic_memcached:Recipe',
          'generic.mysql = slapos.recipe.generic_mysql:Recipe',
121 122
          'generic.mysql.wrap_update_mysql = slapos.recipe.generic_mysql:WrapUpdateMySQL',
          'generic.mysql.wrap_mysqld = slapos.recipe.generic_mysql:WrapMySQLd',
123 124 125
          'generic.varnish = slapos.recipe.generic_varnish:Recipe',
          'generic.zope = slapos.recipe.generic_zope:Recipe',
          'generic.zope.zeo.client = slapos.recipe.generic_zope_zeo_client:Recipe',
126
          'gitinit = slapos.recipe.gitinit:Recipe',
127
          'haproxy = slapos.recipe.haproxy:Recipe',
128
          'helloworld = slapos.recipe.helloworld:Recipe',
129
          'importmdb = slapos.recipe.importmdb:Recipe',
130 131
          'ipv4toipv6 = slapos.recipe.6tunnel:FourToSix',
          'ipv6toipv4 = slapos.recipe.6tunnel:SixToFour',
132
          'java = slapos.recipe.java:Recipe',
133
          'jsondump = slapos.recipe.jsondump:Recipe',
134
          'kumofs = slapos.recipe.kumofs:Recipe',
135
          'kvm = slapos.recipe.kvm:Recipe',
136 137
          'kvm.frontend = slapos.recipe.kvm_frontend:Recipe',
          'lamp = slapos.recipe.lamp:Request',
138
          'lamp.generic = slapos.recipe.lampgeneric:Recipe',
139 140 141 142
          'lamp.request = slapos.recipe.lamp:Request',
          'lamp.simple = slapos.recipe.lamp:Simple',
          'lamp.static = slapos.recipe.lamp:Static',
          'libcloud = slapos.recipe.libcloud:Recipe',
143
          'libcloudrequest = slapos.recipe.libcloudrequest:Recipe',
Antoine Catton's avatar
Antoine Catton committed
144
          'lockfile = slapos.recipe.lockfile:Recipe',
145
          'logrotate = slapos.recipe.logrotate:Recipe',
146
          'logrotate.d = slapos.recipe.logrotate:Part',
147
          'memcached = slapos.recipe.memcached:Recipe',
148
          'mkdirectory = slapos.recipe.mkdirectory:Recipe',
149
          'mioga.instantiate = slapos.recipe.mioga.instantiate:Recipe',
150 151 152
          'mydumper = slapos.recipe.mydumper:Recipe',
          'mysql = slapos.recipe.mysql:Recipe',
          'nbdserver = slapos.recipe.nbdserver:Recipe',
153 154 155
          'neoppod.admin = slapos.recipe.neoppod:Admin',
          'neoppod.master = slapos.recipe.neoppod:Master',
          'neoppod.storage = slapos.recipe.neoppod:Storage',
156
          'nosqltestbed = slapos.recipe.nosqltestbed:NoSQLTestBed',
157
          'notifier = slapos.recipe.notifier:Recipe',
Antoine Catton's avatar
Antoine Catton committed
158 159
          'notifier.callback = slapos.recipe.notifier:Callback',
          'notifier.notify = slapos.recipe.notifier:Notify',
160
          'novnc = slapos.recipe.novnc:Recipe',
161
          'onetimeupload = slapos.recipe.onetimeupload:Recipe',
162
          'pbs = slapos.recipe.pbs:Recipe',
163
          'postgres = slapos.recipe.postgres:Recipe',
164 165
          'postgres.export = slapos.recipe.postgres.backup:ExportRecipe',
          'postgres.import = slapos.recipe.postgres.backup:ImportRecipe',
166
          'proactive = slapos.recipe.proactive:Recipe',
Łukasz Nowak's avatar
Łukasz Nowak committed
167
          'publish = slapos.recipe.publish:Recipe',
168
          'publish.serialised = slapos.recipe.publish:Serialised',
169
          'publishsection = slapos.recipe.publish:PublishSection',
170
          'publishurl = slapos.recipe.publishurl:Recipe',
171
          'readline = slapos.recipe.readline:Recipe',
172
          'redis.server = slapos.recipe.redis:Recipe',
173
          'request = slapos.recipe.request:Recipe',
174
          'request.serialised = slapos.recipe.request:Serialised',
175
          'request.edge = slapos.recipe.request:RequestEdge',
176
          'requestoptional = slapos.recipe.request:RequestOptional',
177
          'reverseproxy.nginx = slapos.recipe.reverse_proxy_nginx:Recipe',
178
          'seleniumrunner = slapos.recipe.seleniumrunner:Recipe',
179
          'sheepdogtestbed = slapos.recipe.sheepdogtestbed:SheepDogTestBed',
180
          'shell = slapos.recipe.shell:Recipe',
181
          'shellinabox = slapos.recipe.shellinabox:Recipe',
182
          'signalwrapper= slapos.recipe.signal_wrapper:Recipe',
183
          'simplelogger = slapos.recipe.simplelogger:Recipe',
184 185
          'siptester = slapos.recipe.siptester:SipTesterRecipe',
          'slapconfiguration = slapos.recipe.slapconfiguration:Recipe',
186
          'slapconfiguration.serialised = slapos.recipe.slapconfiguration:Serialised',
187
          'slapconfiguration.jsondump = slapos.recipe.slapconfiguration:JsonDump',
Antoine Catton's avatar
Antoine Catton committed
188
          'slapcontainer = slapos.recipe.container:Recipe',
Marco Mariani's avatar
Marco Mariani committed
189 190
          'slapmonitor = slapos.recipe.slapmonitor:MonitorRecipe',
          'slapmonitor-xml = slapos.recipe.slapmonitor:MonitorXMLRecipe',
191
          'slapreport = slapos.recipe.slapreport:Recipe',
192
          'softwaretype = slapos.recipe.softwaretype:Recipe',
Romain Courteaud's avatar
Romain Courteaud committed
193
          'sphinx= slapos.recipe.sphinx:Recipe',
194
          'squid = slapos.recipe.squid:Recipe',
195
          'sshkeys_authority = slapos.recipe.sshkeys_authority:Recipe',
196
          'sshkeys_authority.request = slapos.recipe.sshkeys_authority:Request',
197
          'stunnel = slapos.recipe.stunnel:Recipe',
198 199
          'symbolic.link = slapos.recipe.symbolic_link:Recipe',
          'tidstorage = slapos.recipe.tidstorage:Recipe',
200
          'trac = slapos.recipe.trac:Recipe',
201
          'urlparse = slapos.recipe._urlparse:Recipe',
202
          'uuid = slapos.recipe._uuid:Recipe',
203
          'vifib = slapos.recipe.vifib:Recipe',
Antoine Catton's avatar
Antoine Catton committed
204
          'waitfor = slapos.recipe.waitfor:Recipe',
205
          'webchecker = slapos.recipe.web_checker:Recipe',
Antoine Catton's avatar
Antoine Catton committed
206
          'wrapper = slapos.recipe.wrapper:Recipe',
Romain Courteaud's avatar
Romain Courteaud committed
207
          'xvfb = slapos.recipe.xvfb:Recipe',
208
          'xwiki = slapos.recipe.xwiki:Recipe',
209
          'zabbixagent = slapos.recipe.zabbixagent:Recipe',
210
          'zimbra.kvm = slapos.recipe.zimbra_kvm:Recipe',
Łukasz Nowak's avatar
Łukasz Nowak committed
211
          'zeo = slapos.recipe.zeo:Recipe',
212 213
          'zero-knowledge.read = slapos.recipe.zero_knowledge:ReadRecipe',
          'zero-knowledge.write = slapos.recipe.zero_knowledge:WriteRecipe'
214 215 216 217 218
        ],
        'slapos.recipe.nosqltestbed.plugin': [
          'kumo = slapos.recipe.nosqltestbed.kumo:KumoTestBed',
        ],
      },
219
      test_suite='slapos.test',
220
      test_requires=[ 'jsonschema' ],
221
    )
222