Commit 47daf858 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

Merge remote-tracking branch 'origin/erp5-component' into erp5

parents 3e8e054c 56728231
This component is not used anymore - but might be revived within 4 months.
If not used within 6 months, feel free to delete this.
...@@ -42,52 +42,50 @@ def updateMysql(args): ...@@ -42,52 +42,50 @@ def updateMysql(args):
sleep = 30 sleep = 30
is_succeed = False is_succeed = False
while True: while True:
if not is_succeed: mysql_upgrade_list = [conf['mysql_upgrade_binary'], '--no-defaults', '--user=root', '--socket=%s' % conf['socket']]
mysql_upgrade_list = [conf['mysql_upgrade_binary'], '--no-defaults', '--user=root', '--socket=%s' % conf['socket']] mysql_upgrade = subprocess.Popen(mysql_upgrade_list, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
mysql_upgrade = subprocess.Popen(mysql_upgrade_list, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) result = mysql_upgrade.communicate()[0]
result = mysql_upgrade.communicate()[0] if mysql_upgrade.returncode is None:
if mysql_upgrade.returncode is None: mysql_upgrade.kill()
mysql_upgrade.kill() if mysql_upgrade.returncode != 0 and not 'is already upgraded' in result:
if mysql_upgrade.returncode != 0 and not 'is already upgraded' in result: print "Command %r failed with result:\n%s" % (mysql_upgrade_list, result)
print "Command %r failed with result:\n%s" % (mysql_upgrade_list, result) else:
print 'Sleeping for %ss and retrying' % sleep if mysql_upgrade.returncode == 0:
print "MySQL database upgraded with result:\n%s" % result
else: else:
if mysql_upgrade.returncode == 0: print "No need to upgrade MySQL database"
print "MySQL database upgraded with result:\n%s" % result mysql_list = [conf['mysql_binary'].strip(), '--no-defaults', '-B', '--user=root', '--socket=%s' % conf['socket']]
else: mysql = subprocess.Popen(mysql_list, stdin=subprocess.PIPE,
print "No need to upgrade MySQL database" stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
mysql_list = [conf['mysql_binary'].strip(), '--no-defaults', '-B', '--user=root', '--socket=%s' % conf['socket']] result = mysql.communicate(conf['mysql_script'])[0]
mysql = subprocess.Popen(mysql_list, stdin=subprocess.PIPE, if mysql.returncode is None:
stdout=subprocess.PIPE, stderr=subprocess.STDOUT) mysql.kill()
result = mysql.communicate(conf['mysql_script'])[0] if mysql.returncode != 0:
if mysql.returncode is None: print 'Command %r failed with:\n%s' % (mysql_list, result)
mysql.kill() else:
# import timezone database
mysql_tzinfo_to_sql_binary = os.path.join(
os.path.dirname(conf['mysql_binary'].strip()), 'mysql_tzinfo_to_sql')
zoneinfo_directory = '%s/zoneinfo' % os.path.dirname(pytz.__file__)
mysql_tzinfo_to_sql_list = [mysql_tzinfo_to_sql_binary, zoneinfo_directory]
mysql_tzinfo_to_sql = subprocess.Popen(mysql_tzinfo_to_sql_list, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
timezone_sql = mysql_tzinfo_to_sql.communicate()[0]
if mysql.returncode != 0: if mysql.returncode != 0:
print 'Command %r failed with:\n%s' % (mysql_list, result) print 'Command %r failed with:\n%s' % (mysql_tzinfo_to_sql_list, result)
print 'Sleeping for %ss and retrying' % sleep
else: else:
# import timezone database mysql = subprocess.Popen(mysql_list + ['mysql',], stdin=subprocess.PIPE,
mysql_tzinfo_to_sql_binary = os.path.join( stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
os.path.dirname(conf['mysql_binary'].strip()), 'mysql_tzinfo_to_sql') result = mysql.communicate(timezone_sql)[0]
zoneinfo_directory = '%s/zoneinfo' % os.path.dirname(pytz.__file__) if mysql.returncode is None:
mysql_tzinfo_to_sql_list = [mysql_tzinfo_to_sql_binary, zoneinfo_directory] mysql.kill()
mysql_tzinfo_to_sql = subprocess.Popen(mysql_tzinfo_to_sql_list, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
timezone_sql = mysql_tzinfo_to_sql.communicate()[0]
if mysql.returncode != 0: if mysql.returncode != 0:
print 'Command %r failed with:\n%s' % (mysql_tzinfo_to_sql_list, result) print 'Command %r failed with:\n%s' % (mysql_list, result)
print 'Sleeping for %ss and retrying' % sleep is_succeed = True
else: if is_succeed:
mysql = subprocess.Popen(mysql_list + ['mysql',], stdin=subprocess.PIPE, print 'SlapOS initialisation script succesfully applied on database.'
stdout=subprocess.PIPE, stderr=subprocess.STDOUT) break
result = mysql.communicate(timezone_sql)[0] print 'Sleeping for %ss and retrying' % sleep
if mysql.returncode is None:
mysql.kill()
if mysql.returncode != 0:
print 'Command %r failed with:\n%s' % (mysql_list, result)
print 'Sleeping for %ss and retrying' % sleep
is_succeed = True
print 'SlapOS initialisation script succesfully applied on database.'
sys.stdout.flush() sys.stdout.flush()
sys.stderr.flush() sys.stderr.flush()
time.sleep(sleep) time.sleep(sleep)
...@@ -24,7 +24,7 @@ long_query_time = 1 ...@@ -24,7 +24,7 @@ long_query_time = 1
max_allowed_packet = 128M max_allowed_packet = 128M
query_cache_size = 32M query_cache_size = 32M
plugin-load = ha_mroonga.so;ha_sphinx.so;handlersocket.so plugin-load = ha_mroonga.so;handlersocket.so
# By default only 100 connections are allowed, when using zeo # By default only 100 connections are allowed, when using zeo
# we may have much more connections # we may have much more connections
......
...@@ -73,7 +73,11 @@ class Recipe(GenericBaseRecipe): ...@@ -73,7 +73,11 @@ class Recipe(GenericBaseRecipe):
server_snippet = "" server_snippet = ""
i = 0 i = 0
name = self.options['name'] name = self.options['name']
for address in self.options['backend-list'].split(): backend_list = self.options['backend-list']
if isinstance(backend_list, str):
# BBB
backend_list = backend_list.split()
for address in backend_list:
i += 1 i += 1
server_snippet += self.substituteTemplate( server_snippet += self.substituteTemplate(
snippet_filename, dict( snippet_filename, dict(
......
...@@ -21,7 +21,7 @@ long_query_time = 5 ...@@ -21,7 +21,7 @@ long_query_time = 5
max_allowed_packet = 128M max_allowed_packet = 128M
query_cache_size = 32M query_cache_size = 32M
plugin-load = ha_mroonga.so;ha_sphinx.so plugin-load = ha_mroonga.so
# The following are important to configure and depend a lot on to the size of # The following are important to configure and depend a lot on to the size of
# your database and the available resources. # your database and the available resources.
......
...@@ -19,7 +19,7 @@ long_query_time = 5 ...@@ -19,7 +19,7 @@ long_query_time = 5
max_allowed_packet = 128M max_allowed_packet = 128M
query_cache_size = 32M query_cache_size = 32M
plugin-load = ha_mroonga.so;ha_sphinx.so plugin-load = ha_mroonga.so
# The following are important to configure and depend a lot on to the size of # The following are important to configure and depend a lot on to the size of
# your database and the available resources. # your database and the available resources.
......
...@@ -29,13 +29,21 @@ from slapos.recipe.librecipe import GenericBaseRecipe ...@@ -29,13 +29,21 @@ from slapos.recipe.librecipe import GenericBaseRecipe
class Recipe(GenericBaseRecipe): class Recipe(GenericBaseRecipe):
def install(self): def install(self):
path_list = [] configuration_file = self.createFile(
a = path_list.append self.options['configuration-path'],
configuration_file = self.createFile(self.options['configuration-path'], self.substituteTemplate(self.getTemplateFilename('tidstorage.py.in'), self.options)) self.substituteTemplate(
a(configuration_file) self.getTemplateFilename('tidstorage.py.in'), self.options))
tidstorage_wrapper = self.createPythonScript(self.options['tidstorage-wrapper'], 'slapos.recipe.librecipe.execute.execute', [self.options['tidstoraged-binary'], '--nofork', '--config', configuration_file])
a(tidstorage_wrapper)
repozo_wrapper = self.createPythonScript(self.options['repozo-wrapper'], 'slapos.recipe.librecipe.execute.execute', [self.options['tidstorage-repozo-binary'], '--config', configuration_file, '--repozo', self.options['repozo-binary'], '-z'])
a(repozo_wrapper)
return path_list tidstorage_wrapper = self.createPythonScript(
self.options['tidstorage-wrapper'],
'slapos.recipe.librecipe.execute.execute',
[self.options['tidstoraged-binary'], '--nofork', '--config',
configuration_file])
repozo_wrapper = self.createPythonScript(
self.options['repozo-wrapper'],
'slapos.recipe.librecipe.execute.execute',
[self.options['tidstorage-repozo-binary'], '--config',
configuration_file, '--repozo', self.options['repozo-binary'], '-z'])
return [configuration_file, tidstorage_wrapper, repozo_wrapper]
known_tid_storage_identifier_dict = %(known-tid-storage-identifier-dict)s known_tid_storage_identifier_dict = %(known-tid-storage-identifier-dict)s
base_url = '%(base-url)s'
address = '%(ip)s' address = '%(ip)s'
port = %(port)s port = %(port)s
......
...@@ -21,7 +21,7 @@ long_query_time = 5 ...@@ -21,7 +21,7 @@ long_query_time = 5
max_allowed_packet = 128M max_allowed_packet = 128M
query_cache_size = 32M query_cache_size = 32M
plugin-load = ha_mroonga.so;ha_sphinx.so plugin-load = ha_mroonga.so
# The following are important to configure and depend a lot on to the size of # The following are important to configure and depend a lot on to the size of
# your database and the available resources. # your database and the available resources.
......
...@@ -17,7 +17,7 @@ find-links = ...@@ -17,7 +17,7 @@ find-links =
extends = extends =
# Exact version of Zope # Exact version of Zope
http://svn.zope.org/repos/main/Zope/tags/2.12.23/versions.cfg http://svn.zope.org/repos/main/Zope/tags/2.12.25/versions.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
../../component/logrotate/buildout.cfg ../../component/logrotate/buildout.cfg
../../component/dcron/buildout.cfg ../../component/dcron/buildout.cfg
...@@ -48,7 +48,6 @@ extends = ...@@ -48,7 +48,6 @@ extends =
../../component/python-2.7/buildout.cfg ../../component/python-2.7/buildout.cfg
../../component/python-ldap-python/buildout.cfg ../../component/python-ldap-python/buildout.cfg
../../component/rdiff-backup/buildout.cfg ../../component/rdiff-backup/buildout.cfg
../../component/sphinx/buildout.cfg
../../component/stunnel/buildout.cfg ../../component/stunnel/buildout.cfg
../../component/subversion/buildout.cfg ../../component/subversion/buildout.cfg
../../component/tesseract/buildout.cfg ../../component/tesseract/buildout.cfg
...@@ -85,7 +84,6 @@ parts = ...@@ -85,7 +84,6 @@ parts =
ghostscript ghostscript
mariadb mariadb
mroonga-mariadb mroonga-mariadb
sphinx
imagemagick imagemagick
libdmtx libdmtx
dmtx-utils dmtx-utils
...@@ -186,7 +184,7 @@ context = ...@@ -186,7 +184,7 @@ context =
[template-mariadb] [template-mariadb]
< = template-jinja2-base < = template-jinja2-base
filename = instance-mariadb.cfg filename = instance-mariadb.cfg
md5sum = 0e8e9bfc8c8a5f1bd71f5c4f346ef68b md5sum = 867bd8e3c4f56db2aab2fcad59f2efd8
extra-context = extra-context =
key coreutils_location coreutils:location key coreutils_location coreutils:location
key dcron_location dcron:location key dcron_location dcron:location
...@@ -200,13 +198,6 @@ extra-context = ...@@ -200,13 +198,6 @@ extra-context =
key sed_location sed:location key sed_location sed:location
key xtrabackup_location xtrabackup:location key xtrabackup_location xtrabackup:location
[template-sphinx]
< = template-jinja2-base
filename = instance-sphinx.cfg
md5sum = e3975afd5220f251d6b6e7024a2ca08b
extra-context =
key sphinx_location sphinx:location
[template-zope] [template-zope]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-zope.cfg.in url = ${:_profile_base_location_}/instance-zope.cfg.in
...@@ -227,7 +218,7 @@ extra-context = ...@@ -227,7 +218,7 @@ extra-context =
[template-tidstorage] [template-tidstorage]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-tidstorage.cfg.in url = ${:_profile_base_location_}/instance-tidstorage.cfg.in
md5sum = 520e39f2612a045b42c0ad914bfdc5a9 md5sum = 1f3e7cfc719d3c2eee4860678f6a67df
mode = 640 mode = 640
[template-cloudooo] [template-cloudooo]
...@@ -239,7 +230,7 @@ mode = 640 ...@@ -239,7 +230,7 @@ mode = 640
[template-zope-conf] [template-zope-conf]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/zope.conf.in url = ${:_profile_base_location_}/zope.conf.in
md5sum = 599e004c18fd3461aa846ae75bd112f2 md5sum = bc2154161a1d5baddc4ed4dfaaf94fbe
mode = 640 mode = 640
[template] [template]
...@@ -247,7 +238,7 @@ mode = 640 ...@@ -247,7 +238,7 @@ mode = 640
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
filename = template.cfg filename = template.cfg
template = ${:_profile_base_location_}/instance.cfg.in template = ${:_profile_base_location_}/instance.cfg.in
md5sum = 26d26c357053af48602b5110120bd085 md5sum = 700b8729a4d9a8423ab2a99de486cc31
extra-context = extra-context =
key apache_location apache:location key apache_location apache:location
key aspell_location aspell:location key aspell_location aspell:location
...@@ -292,7 +283,6 @@ extra-context = ...@@ -292,7 +283,6 @@ extra-context =
key template_kumofs template-kumofs:rendered key template_kumofs template-kumofs:rendered
key template_mariadb template-mariadb:rendered key template_mariadb template-mariadb:rendered
key template_memcached template-memcached:rendered key template_memcached template-memcached:rendered
key template_sphinx template-sphinx:rendered
key template_tidstorage template-tidstorage:target key template_tidstorage template-tidstorage:target
key template_varnish template-varnish:target key template_varnish template-varnish:target
key template_zope template-zope:target key template_zope template-zope:target
...@@ -320,7 +310,7 @@ mode = 640 ...@@ -320,7 +310,7 @@ mode = 640
[template-erp5-cluster] [template-erp5-cluster]
< = template-jinja2-base < = template-jinja2-base
filename = instance-erp5-cluster.cfg filename = instance-erp5-cluster.cfg
md5sum = 3051f3fea39d7409c417dcac26027b56 md5sum = b4a9688ca7983fac5dd573e66c6e4263
extra-context = extra-context =
key local_bt5_repository local-bt5-repository:list key local_bt5_repository local-bt5-repository:list
...@@ -638,7 +628,7 @@ ply = 3.4 ...@@ -638,7 +628,7 @@ ply = 3.4
polib = 1.0.0 polib = 1.0.0
psutil = 0.6.1 psutil = 0.6.1
python-ldap = 2.4.10 python-ldap = 2.4.10
python-magic = 0.4.2 python-magic = 0.4.3
python-memcached = 1.47 python-memcached = 1.47
restkit = 4.2.0 restkit = 4.2.0
rtjp-eventlet = 0.3.2 rtjp-eventlet = 0.3.2
...@@ -657,3 +647,6 @@ uuid = 1.30 ...@@ -657,3 +647,6 @@ uuid = 1.30
validictory = 0.8.3 validictory = 0.8.3
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
xupdate-processor = 0.4 xupdate-processor = 0.4
mr.developer = 1.21
qrcode = 2.4.1
requests = 0.13.2
...@@ -24,13 +24,6 @@ cert-file = ${slap-connection:cert-file} ...@@ -24,13 +24,6 @@ cert-file = ${slap-connection:cert-file}
computer-id = ${slap-connection:computer-id} computer-id = ${slap-connection:computer-id}
partition-id = ${slap-connection:partition-id} partition-id = ${slap-connection:partition-id}
[request-sphinx]
<=request-common
name = Sphinx Search Engine
software-type = sphinx
sla-computer_guid = ${slap-parameter:sphinx-computer-guid}
return = url-sphinx url-sphinx-sql
[request-mariadb] [request-mariadb]
<=request-common <=request-common
name = MariaDB DataBase name = MariaDB DataBase
...@@ -67,8 +60,6 @@ config = ...@@ -67,8 +60,6 @@ config =
memcached-url memcached-url
cloudooo-url cloudooo-url
kumofs-url kumofs-url
sphinx-url-sphinx
sphinx-url-sphinx-sql
smtp-url smtp-url
bt5 bt5
bt5-repository-url bt5-repository-url
...@@ -77,8 +68,6 @@ config-mysql-url = ${request-mariadb:connection-url} ...@@ -77,8 +68,6 @@ config-mysql-url = ${request-mariadb:connection-url}
config-memcached-url = ${request-memcached:connection-url} config-memcached-url = ${request-memcached:connection-url}
config-cloudooo-url = ${request-cloudooo:connection-url} config-cloudooo-url = ${request-cloudooo:connection-url}
config-kumofs-url = ${request-kumofs:connection-url} config-kumofs-url = ${request-kumofs:connection-url}
config-sphinx-url-sphinx = ${request-sphinx:connection-url-sphinx}
config-sphinx-url-sphinx-sql = ${request-sphinx:connection-url-sphinx-sql}
config-bt5 = ${slap-parameter:bt5} config-bt5 = ${slap-parameter:bt5}
config-bt5-repository-url = ${slap-parameter:bt5-repository-url} config-bt5-repository-url = ${slap-parameter:bt5-repository-url}
config-smtp-url = ${slap-parameter:smtp-url} config-smtp-url = ${slap-parameter:smtp-url}
...@@ -97,7 +86,6 @@ sla-computer_guid = ${slap-parameter:varnish-computer-guid} ...@@ -97,7 +86,6 @@ sla-computer_guid = ${slap-parameter:varnish-computer-guid}
[slap-parameter] [slap-parameter]
# Default value if no computer_guid is specified for each type # Default value if no computer_guid is specified for each type
sphinx-computer-guid = ${slap-connection:computer-id}
mariadb-computer-guid = ${slap-connection:computer-id} mariadb-computer-guid = ${slap-connection:computer-id}
cloudooo-computer-guid = ${slap-connection:computer-id} cloudooo-computer-guid = ${slap-connection:computer-id}
memcached-computer-guid = ${slap-connection:computer-id} memcached-computer-guid = ${slap-connection:computer-id}
......
...@@ -30,7 +30,7 @@ recipe = slapos.cookbook:generic.mysql ...@@ -30,7 +30,7 @@ recipe = slapos.cookbook:generic.mysql
# Options # Options
user = user user = user
parallel-test-database-amount = 100 parallel-test-database-amount = ${slap-parameter:test-database-amount}
port = 45678 port = 45678
ip = ${slap-network-information:local-ipv4} ip = ${slap-network-information:local-ipv4}
database = erp5 database = erp5
...@@ -178,3 +178,6 @@ recipe = slapos.cookbook:check_port_listening ...@@ -178,3 +178,6 @@ recipe = slapos.cookbook:check_port_listening
path = ${basedirectory:promise}/mariadb path = ${basedirectory:promise}/mariadb
hostname = ${mariadb-instance:ip} hostname = ${mariadb-instance:ip}
port = ${mariadb-instance:port} port = ${mariadb-instance:port}
[slap-parameter]
test-database-amount = 100
[buildout]
parts =
publish-sphinx-url
sphinxd-instance
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
[publish-sphinx-url]
recipe = slapos.cookbook:publish
url-sphinx = sphinx://${sphinxd-instance:ip}:${sphinxd-instance:sphinx-port}
url-sphinx-sql = mysql://${sphinxd-instance:ip}:${sphinxd-instance:sql-port}
[sphinxd-instance]
recipe = slapos.cookbook:sphinx
data-directory = ${directory:sphinx-data}
configuration-file = ${rootdirectory:etc}/sphinx.conf
searchd-log = ${basedirectory:log}/sphinx-searchd.log
query-log = ${basedirectory:log}/sphinx-query.log
pid = ${basedirectory:run}/sphinx-searchd.pid
ip = ${slap-network-information:local-ipv4}
sphinx-port = 9312
sql-port = 9306
wrapper = ${basedirectory:services}/sphinxd
sphinx-searchd-binary = {{ sphinx_location }}/bin/searchd
[rootdirectory]
recipe = slapos.cookbook:mkdirectory
etc = ${buildout:directory}/etc
var = ${buildout:directory}/var
srv = ${buildout:directory}/srv
bin = ${buildout:directory}/bin
[basedirectory]
recipe = slapos.cookbook:mkdirectory
log = ${rootdirectory:var}/log
services = ${rootdirectory:etc}/run
run = ${rootdirectory:var}/run
[directory]
recipe = slapos.cookbook:mkdirectory
sphinx-data = ${rootdirectory:srv}/sphinx
...@@ -485,7 +485,6 @@ recipe = slapos.cookbook:publish ...@@ -485,7 +485,6 @@ recipe = slapos.cookbook:publish
[tidstorage] [tidstorage]
recipe = slapos.cookbook:tidstorage recipe = slapos.cookbook:tidstorage
known-tid-storage-identifier-dict = {{ known_tid_storage_identifier_dict }} known-tid-storage-identifier-dict = {{ known_tid_storage_identifier_dict }}
base-url = http://${zope-admin:ip}:${zope-admin:port}/%s/serialize
configuration-path = ${directory:etc}/tidstorage.py configuration-path = ${directory:etc}/tidstorage.py
ip = {{ ipv4 }} ip = {{ ipv4 }}
port = 6001 port = 6001
......
...@@ -197,7 +197,6 @@ memcached = {{ template_memcached }} ...@@ -197,7 +197,6 @@ memcached = {{ template_memcached }}
cloudooo = ${dynamic-template-cloudooo:rendered} cloudooo = ${dynamic-template-cloudooo:rendered}
zope = ${dynamic-template-zope:rendered} zope = ${dynamic-template-zope:rendered}
mariadb = {{ template_mariadb }} mariadb = {{ template_mariadb }}
sphinx = {{ template_sphinx }}
tidstorage = ${dynamic-template-tidstorage:rendered} tidstorage = ${dynamic-template-tidstorage:rendered}
varnish = ${dynamic-template-varnish:rendered} varnish = ${dynamic-template-varnish:rendered}
......
...@@ -43,10 +43,11 @@ products {{ instance_products }} ...@@ -43,10 +43,11 @@ products {{ instance_products }}
</product-config> </product-config>
{% endif -%} {% endif -%}
{% if 'timerserver-interval' in parameter_dict -%} {% set timerserver_interval = parameter_dict.get('timerserver-interval', '0') | int -%}
{% if timerserver_interval -%}
%import timerserver %import timerserver
<timer-server> <timer-server>
interval {{ parameter_dict['timerserver-interval'] }} interval {{ timerserver_interval }}
</timer-server> </timer-server>
{% endif -%} {% endif -%}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment