From 14f5fb8f7c76f11bfdb54949d7d6c1d0bfc51df6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Thu, 20 Oct 2011 10:23:15 +0200 Subject: [PATCH] Provide erp5 updater in separate recipe. --- slapos/recipe/erp5/__init__.py | 14 +++--- slapos/recipe/erp5_update/__init__.py | 63 ++++++++++----------------- 2 files changed, 30 insertions(+), 47 deletions(-) diff --git a/slapos/recipe/erp5/__init__.py b/slapos/recipe/erp5/__init__.py index 56f3aa517..e9fa8176a 100644 --- a/slapos/recipe/erp5/__init__.py +++ b/slapos/recipe/erp5/__init__.py @@ -89,13 +89,13 @@ class Recipe(BaseSlapRecipe): backend_url=apache_conf['apache_login'], key=frontend_key, certificate=frontend_certificate) - default_bt5_list = [] - if self.parameter_dict.get("flavour", "default") == 'configurator': - default_bt5_list = self.options.get("configurator_bt5_list", '').split() - - self.installERP5Site(user, password, zope_access, mysql_conf, - conversion_server_conf, memcached_conf, kumo_conf, - self.site_id, default_bt5_list, ca_conf) +# default_bt5_list = [] +# if self.parameter_dict.get("flavour", "default") == 'configurator': +# default_bt5_list = self.options.get("configurator_bt5_list", '').split() +# +# self.installERP5Site(user, password, zope_access, mysql_conf, +# conversion_server_conf, memcached_conf, kumo_conf, +# self.site_id, default_bt5_list, ca_conf) self.installTestRunner(ca_conf, mysql_conf, conversion_server_conf, memcached_conf, kumo_conf) diff --git a/slapos/recipe/erp5_update/__init__.py b/slapos/recipe/erp5_update/__init__.py index eaf246851..1c83da99d 100644 --- a/slapos/recipe/erp5_update/__init__.py +++ b/slapos/recipe/erp5_update/__init__.py @@ -24,21 +24,11 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################## -import os import urlparse -from slapos.recipe.librecipe import GenericBaseRecipe +from slapos.recipe.librecipe import GenericSlapRecipe -class Recipe(GenericBaseRecipe): - def install(self): -# def installERP5Site(self, user, password, zope_access, mysql_conf, -# conversion_server_conf=None, memcached_conf=None, -# kumo_conf=None, -# erp5_site_id='erp5', default_bt5_list=[], ca_conf={}, -# supervisor_controlled=True): -# """ -# Create a script to automatically set up an erp5 site (controlled by -# supervisor by default) on available zope and mysql environments. -# """ +class Recipe(GenericSlapRecipe): + def _install(self): conversion_server = None if 'cloudooo-url' in self.options and self.options['cloudooo-url']: parsed = urlparse.urlparse(self.options['cloudooo-url']) @@ -53,38 +43,31 @@ class Recipe(GenericBaseRecipe): kumofs = "%s:%s" % (parsed.hostname, parsed.port) parsed = urlparse.urlparse(self.options['mysql-url']) - mysql_connection_string = "%(database)s %(hostname)s@%(port)s %(username)s %(password)s" % dict( + mysql_connection_string = "%(database)s %(hostname)s@%(port)s "\ + "%(username)s %(password)s" % dict( database=parsed.path.split('/')[1], hostname=parsed.hostname, port=parsed.port, username=parsed.username, password=parsed.password ) - raise NotImplementedError - - bt5_list = self.parameter_dict.get("bt5_list", "").split() or default_bt5_list - bt5_repository_list = self.parameter_dict.get("bt5_repository_list", "").split() \ - or getattr(self, 'bt5_repository_list', []) - - erp5_update_directory = supervisor_controlled and self.wrapper_directory or \ - self.bin_directory - - script = zc.buildout.easy_install.scripts([('erp5_update', - __name__ + '.erp5', 'updateERP5')], self.ws, - sys.executable, erp5_update_directory, - arguments=[erp5_site_id, - mysql_connection_string, - [user, password, zope_access], - memcached, - conversion_server, - kumofs, - bt5_list, - bt5_repository_list, - ca_conf.get('certificate_authority_path'), - self.options.get('openssl_binary')]) - - self.path_list.extend(script) - - return [] + parsed = urlparse.urlparse(self.options['url']) + zope_user = parsed.username + zope_password = parsed.password + zope_host = '%s:%s' % (parsed.hostname, parsed.port) + bt5_list = [] + if len(self.parameter_dict.get("bt5_list", "").strip()): + bt5_list = self.parameter_dict["bt5_list"].split() + elif self.parameter_dict.get("flavour", "default") == 'configurator': + bt5_list = self.options['configurator-bt5-list'].split() + bt5_repository_list = self.parameter_dict.get("bt5_repository_list", + "").split() or self.options['bt5-repository-list'].split() + script = self.createPythonScript(self.options['update-wrapper'], + __name__+'.erp5.updateERP5', [ + self.options['site-id'], mysql_connection_string, + [zope_user, zope_password, zope_host], + memcached, conversion_server, kumofs, bt5_list, bt5_repository_list, + self.options['cadir-path'], self.options['openssl-binary']]) + return [script] -- 2.30.9