diff --git a/slapos/recipe/erp5.recipe.testnode/setup.py b/slapos/recipe/erp5.recipe.testnode/setup.py index b8b5837abc2e7d26b0dffb37b1471e72fc13e39e..80cf5bb4e0712dfd1457ef6d652ca38f4249ae99 100644 --- a/slapos/recipe/erp5.recipe.testnode/setup.py +++ b/slapos/recipe/erp5.recipe.testnode/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages name = "erp5.recipe.testnode" -version = '1.0.5' +version = '1.0.11' def read(name): return open(name).read() diff --git a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py index e86f33abdd6aa224e8234c32dfd1ed1c0bb6f6d0..d3e54488dd1759113d441b2a4043b7eacdb1535d 100644 --- a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py +++ b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py @@ -56,16 +56,15 @@ class SlapOSControler(object): slapgrid = subprocess.Popen([config['slapgrid_software_binary'], '-v', '-c', #'--buildout-parameter',"'-U -N' -o", config['slapos_config']], + stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True, preexec_fn=os.setsid) process_group_pid_list.append(slapgrid.pid) slapgrid.wait() - if slapgrid.returncode == 0: - print 'Software installed properly' - break - else: - raise ValueError("Slapgrid software failed") - print 'Problem with software installation, trying again' - time.sleep(600) + stdout, stderr = slapgrid.communicate() + status_dict = {'status_code':slapgrid.returncode, + 'stdout':stdout, + 'stderr':stderr} + return status_dict def runComputerPartition(self, config, process_group_pid_list=None): print "SlapOSControler.runSoftwareRelease" diff --git a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py index a6ba8dd01cdc7e5eb18a49a71b78759b55106908..4177d2f556eeebb2c76f3727850d0544202be680 100644 --- a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py +++ b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py @@ -73,7 +73,7 @@ class Recipe(BaseSlapRecipe): ipv4_address=self.getLocalIPv4Address(), ipv6_address=self.getGlobalIPv6Address(), master_url=CONFIG['master_url'], - profile_url=self.parameter_dict['profile_url'], + profile_path=self.parameter_dict['profile_path'], proxy_database=CONFIG['proxy_database'], proxy_port=CONFIG['proxy_port'], slapgrid_partition_binary=self.options['slapgrid_partition_binary'], @@ -89,8 +89,7 @@ class Recipe(BaseSlapRecipe): test_suite_master_url=self.parameter_dict.get( 'test_suite_master_url', None), test_suite_name=self.parameter_dict.get('test_suite_name'), - #slave_name=self.parameter_dict['slave_name'], - #slave_password=self.parameter_dict['slave_password'], + test_suite_title=self.parameter_dict.get('test_suite_title'), bin_directory=self.bin_directory, foo='bar', # botenvironemnt is splittable string of key=value to substitute diff --git a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py index 8b02f64ac809cc1c09d5796b5deda168bdc3cecc..943984be2d4c6c523720391a2e00c1a916995cc8 100644 --- a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py +++ b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py @@ -85,7 +85,7 @@ extends = %(software_config_path)s [%(repository_name)s] repository = %(repository_path)s """ % {'software_config_path': os.path.join(repository_path, - config['profile_url']), + config['profile_path']), 'repository_name': repository_name, 'repository_path' : repository_path} if branch is not None: @@ -126,7 +126,7 @@ repository = %(repository_path)s assert master.getProtocolRevision() == 1 test_result = safeRpcCall(master.createTestResult, config['test_suite_name'], revision, [], - False) + False, config['test_suite_title']) print "testnode, test_result : %r" % (test_result,) if test_result: test_result_path, test_revision = test_result @@ -142,10 +142,14 @@ repository = %(repository_path)s process_group_pid_list=process_group_pid_list) if run_software: # this should be always true later, but it is too slow for now - slapos_controler.runSoftwareRelease(config, + status_dict = slapos_controler.runSoftwareRelease(config, environment=config['environment'], process_group_pid_list=process_group_pid_list, ) + if status_dict['status_code'] != 0: + safeRpcCall(master.reportTaskFailure, + test_result_path, status_dict, config['test_suite_title']) + continue run_software = False # create instances, it should take some seconds only