diff --git a/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py b/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py index 6945fdebd7f39e89e688ddf3ad3b0244ce26a12f..a401269e50f0fb15f311e429594f79800d6318f8 100644 --- a/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py +++ b/slapos/recipe/erp5/src/slapos/recipe/erp5/__init__.py @@ -50,11 +50,12 @@ class Recipe(BaseSlapRecipe): def _install(self): self.path_list = [] self.requirements, self.ws = self.egg.working_set([__name__]) - login_key, login_certificate, key_auth_key, key_auth_certificate = \ - self.installCertificateAuthority() - self.installMemcached(ip=self.getLocalIPv4Address(), port=11000) - self.installKumo(self.getLocalIPv4Address()) - self.installConversionServer(self.getLocalIPv4Address(), 23000, 23060) + ca_conf = self.installCertificateAuthority() + memcached_conf = self.installMemcached(ip=self.getLocalIPv4Address(), + port=11000) + kumo_conf = self.installKumo(self.getLocalIPv4Address()) + conversion_server_conf = self.installConversionServer( + self.getLocalIPv4Address(), 23000, 23060) mysql_conf = self.installMysqlServer(self.getLocalIPv4Address(), 45678) user, password = self.installERP5() zodb_dir = os.path.join(self.data_root_directory, 'zodb') @@ -63,17 +64,22 @@ class Recipe(BaseSlapRecipe): zope_access = self.installZope(ip=self.getLocalIPv4Address(), port=12000 + 1, name='zope_%s' % 1, zodb_root_path=zodb_root_path) - self.connection_dict.update( + apache_conf = dict( apache_login=self.installLoginApache(ip=self.getGlobalIPv6Address(), - port=13000, backend=zope_access, key=login_key, - certificate=login_certificate)) + port=13000, backend=zope_access, key=ca_conf['login_key'], + certificate=ca_conf['login_certificate'])) if self.options.get('erp5_site_id') not in [None, ""]: self.installERP5Site(user, password, zope_access, mysql_conf['mysql_database'], mysql_conf['ip'], mysql_conf['tcp_port'], mysql_conf['mysql_user'], mysql_conf['mysql_password'], self.options.get('erp5_site_id')) - self.installTestRunner() + self.installTestRunner(ca_conf, mysql_conf, conversion_server_conf) self.linkBinary() + self.setConnectionDict(dict( + url=apache_conf['apache_login'], + user=user, + password=password + )) return self.path_list def linkBinary(self): @@ -129,7 +135,7 @@ class Recipe(BaseSlapRecipe): self.substituteTemplate(self.getTemplateFilename('kumo_server.in'), config))) - self.connection_dict.update( + return dict( kumo_address = '%s:%s' % (config['kumo_gateway_ip'], config['kumo_gateway_port']) ) @@ -143,10 +149,10 @@ class Recipe(BaseSlapRecipe): self.path_list.append(self.createRunningWrapper('memcached', self.substituteTemplate(self.getTemplateFilename('memcached.in'), config))) - self.connection_dict.update(memcached_url='%s:%s' % + return dict(memcached_url='%s:%s' % (config['memcached_ip'], config['memcached_port'])) - def installTestRunner(self): + def installTestRunner(self, ca_conf, mysql_conf, conversion_server_conf): """Installs bin/runTestSuite executable to run all tests using bin/runUnitTest""" # XXX: This method can be drastically simplified after #20110128-1ECA63 @@ -164,15 +170,15 @@ class Recipe(BaseSlapRecipe): instance_home=testinstance, prepend_path=self.bin_directory, openssl_binary=self.options['openssl_binary'], - test_ca_path=self.connection_dict['certificate_authority_path'], + test_ca_path=ca_conf['certificate_authority_path'], call_list=[self.options['runUnitTest_binary'], '--erp5_sql_connection_string', '%(mysql_test_database)s@%' - '(mysql_ip)s:%(mysql_port)s %(mysql_test_user)s ' - '%(mysql_test_password)s' % self.connection_dict, + '(ip)s:%(tcp_port)s %(mysql_test_user)s ' + '%(mysql_test_password)s' % mysql_conf, '--conversion_server_hostname=%(conversion_server_ip)s' % \ - self.connection_dict, + conversion_server_conf, '--conversion_server_port=%(conversion_server_port)s' % \ - self.connection_dict + conversion_server_conf ] )])[0] self.path_list.append(runUnitTest) @@ -232,13 +238,12 @@ class Recipe(BaseSlapRecipe): key_auth_key=key_auth_key, key_auth_certificate=key_auth_certificate, )])) - self.connection_dict.update( - openssl_binary=self.options['openssl_binary'], - certificate_authority_path=config['ca_dir'] + return dict( + login_key=login_key, login_certificate=login_certificate, + key_auth_key=key_auth_key, key_auth_certificate=key_auth_certificate, + certificate_authority_path=config['ca_dir'] ) - return login_key, login_certificate, key_auth_key, key_auth_certificate - def installConversionServer(self, ip, port, openoffice_port): name = 'conversion_server' working_directory = self.createDataDirectory(name) @@ -268,10 +273,10 @@ class Recipe(BaseSlapRecipe): __name__ + '.execute', 'execute_with_signal_translation')], self.ws, sys.executable, self.wrapper_directory, arguments=[self.options['ooo_paster'].strip(), 'serve', config_file])) - self.connection_dict.update(**{ + return { name + '_port': conversion_server_dict['port'], name + '_ip': conversion_server_dict['ip'] - }) + } def installHaproxy(self, ip, port, name, server_check_path, url_list): server_template = """ server %(name)s %(address)s cookie %(name)s check inter 20s rise 2 fall 4""" @@ -311,9 +316,6 @@ class Recipe(BaseSlapRecipe): write_inituser(os.path.join(self.erp5_directory, "inituser"), user, password) - # XXX Is this information usefull on connection dict? - self.connection_dict.update(zope_user=user, zope_password=password) - self._createDirectory(self.erp5_directory) for directory in ( 'Constraint', @@ -560,16 +562,6 @@ SSLCARevocationPath %(ca_crl)s""" self.substituteTemplate(self.getTemplateFilename('my.cnf.in'), mysql_conf)) - self.connection_dict.update( - mysql_database=mysql_conf['mysql_database'], - mysql_ip=mysql_conf['ip'], - mysql_password=mysql_conf['mysql_password'], - mysql_port=mysql_conf['tcp_port'], - mysql_user=mysql_conf['mysql_user'], - mysql_test_database=mysql_conf['mysql_test_database'], - mysql_test_user=mysql_conf['mysql_test_user'], - mysql_test_password=mysql_conf['mysql_test_password'], - ) initialise_command_list = [self.options['mysql_install_binary'], '--skip-name-resolve', '--no-defaults', '--datadir=%s' % mysql_conf['data_directory']]