diff --git a/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py b/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py index 6e07c62589fabed529d348ab0abd24a9b23b9117..8ec38c4a2e346668c123d4d3d0b0afd9aeb2d8fd 100644 --- a/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py +++ b/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py @@ -70,8 +70,8 @@ class Recipe(BaseSlapRecipe): apache_login=self.installLoginApache(ip=self.getGlobalIPv6Address(), port=13000, backend=zope_access, key=ca_conf['login_key'], certificate=ca_conf['login_certificate'])) - self.installERP5Site(user, password, zope_access, - mysql_conf, conversion_server_conf, memcached_conf, self.site_id) + self.installERP5Site(user, password, zope_access, mysql_conf, + conversion_server_conf, memcached_conf, kumo_conf, self.site_id) self.installTestRunner(ca_conf, mysql_conf, conversion_server_conf) self.linkBinary() self.setConnectionDict(dict( @@ -334,13 +334,17 @@ class Recipe(BaseSlapRecipe): return user, password def installERP5Site(self, user, password, zope_access, mysql_conf, - conversion_server_conf=None, memcached_conf=None, erp5_site_id='erp5'): + conversion_server_conf=None, memcached_conf=None, kumo_conf=None, erp5_site_id='erp5'): """ Create a script controlled by supervisor, which creates a erp5 site on current available zope and mysql environment""" - if conversion_server_conf is None: - conversion_server_conf = {} + conversion_server = None + if conversion_server_conf is not None: + conversion_server = "%s:%s" % (conversion_server_conf['conversion_server_ip'], + conversion_server_conf['conversion_server_port']) if memcached_conf is None: memcached_conf = {} + if kumo_conf is None: + kumo_conf = {} # XXX Conversion server and memcache server coordinates are not relevant # for pure site creation. https_connection_url = "http://%s:%s@%s/" % (user, password, zope_access) @@ -359,8 +363,8 @@ class Recipe(BaseSlapRecipe): mysql_connection_string, https_connection_url, memcached_conf.get('memcached_url'), - conversion_server_conf.get('conversion_server_ip'), - conversion_server_conf.get('conversion_server_port'), + conversion_server, + kumo_conf.get("kumo_address"), bt5_list, bt5_repository_list])) return [] diff --git a/slapos/recipe/erp5/src/slapos/recipe/erp5/erp5.py b/slapos/recipe/erp5/src/slapos/recipe/erp5/erp5.py index b1a957ff03ab247c4495d7c36ab2bd68096ae066..c17636b47122d6ddeb388fe486a25b7e3a7c5e55 100644 --- a/slapos/recipe/erp5/src/slapos/recipe/erp5/erp5.py +++ b/slapos/recipe/erp5/src/slapos/recipe/erp5/erp5.py @@ -35,8 +35,8 @@ def updateERP5(args): mysql_string = args[1] base_url = args[2] memcached_provider = args[3] - conversion_server_address = args[4] - conversion_server_port = args[5] + conversion_server = args[4] + kumo_provider = args[5] bt5_list = args[6] bt5_repository_list = [] if len(args) > 7: @@ -46,7 +46,9 @@ def updateERP5(args): bt5_repository_list = ["http://www.erp5.org/dists/snapshot/bt5"] erp5_catalog_storage = "erp5_mysql_innodb_catalog" business_template_setup_finished = 0 - sleep = 60 + external_service_assertion = 1 + update_script_id = "ERP5Site_assertExternalServiceList" + sleep = 120 while True: try: proxy = xmlrpclib.ServerProxy(base_url) @@ -87,8 +89,14 @@ def updateERP5(args): len([i for i in bt5_list if i not in installed_bt5_list]) == 0: print "Repositories updated and business templates installed." business_template_setup_finished = 1 - else: - print "ERP5 site is already present, ignore." + + if external_service_assertion: + url = "%s/%s/%s" % (base_url, site_id, update_script_id) + result = urllib.urlopen(url, urllib.urlencode({ + "memcached" : memcached_provider, + "kumo" : kumo_provider, + "conversion_server" : conversion_server,})).read() + external_service_assertion = not (result == "True") except IOError: print "Unable to create the ERP5 Site!"