diff --git a/slapos/resiliencytest/suites/erp5.py b/slapos/resiliencytest/suites/erp5.py index fc26e9795d0a0ffb4d65c3a947c4cbf356f7dc9d..a82ceb585f0645cbaa3e256e746cbcee480a1cb7 100644 --- a/slapos/resiliencytest/suites/erp5.py +++ b/slapos/resiliencytest/suites/erp5.py @@ -76,6 +76,12 @@ class ERP5TestSuite(SlaprunnerTestSuite): self.logger.info('Retrieved erp5 password is:\n%s' % password) return password + def _getSlaprunnerServiceInformationList(self): + result = self._connectToSlaprunner( + resource='/inspectInstance', + ) + return json.loads(result) + def _editHAProxyconfiguration(self): """ XXX pure hack. @@ -85,20 +91,31 @@ class ERP5TestSuite(SlaprunnerTestSuite): """ self.logger.info('Editing HAProxy configuration...') + service_information_list = self._getSlaprunnerServiceInformationList() + # We expect only one service haproxy + haproxy_service, = [ + x['service_name'] for x in service_information_list + if 'haproxy' in x['service_name'] + ] + haproxy_slappart = haproxy_service.split(':', 1)[0] + result = self._connectToSlaprunner( resource='/getFileContent', - data='file=runner_workdir%2Finstance%2Fslappart7%2Fetc%2Fhaproxy.cfg' + data='file=runner_workdir%2Finstance%2F{slappart}%2Fetc%2Fhaproxy.cfg'.format(slappart=haproxy_slappart) ) file_content = json.loads(result)['result'] file_content = file_content.replace('var/run/haproxy.sock', 'ha.sock') self._connectToSlaprunner( resource='/saveFileContent', - data='file=runner_workdir%%2Finstance%%2Fslappart7%%2Fetc%%2Fhaproxy.cfg&content=%s' % urllib.quote(file_content) + data='file=runner_workdir%%2Finstance%%2F%s%%2Fetc%%2Fhaproxy.cfg&content=%s' % ( + haproxy_slappart, + urllib.quote(file_content), + ) ) # Restart HAProxy self._connectToSlaprunner( - resource='/startStopProccess/name/slappart7:*/cmd/RESTART' + resource='/startStopProccess/name/%s:*/cmd/RESTART' % haproxy_slappart ) diff --git a/slapos/resiliencytest/suites/slaprunner.py b/slapos/resiliencytest/suites/slaprunner.py index d0fcdabe49ce284014cfb54c4e0f71a61558e1ff..e5da2a0e86d03ffb045f1e3b7e53bda30260a0f6 100644 --- a/slapos/resiliencytest/suites/slaprunner.py +++ b/slapos/resiliencytest/suites/slaprunner.py @@ -102,7 +102,12 @@ class SlaprunnerTestSuite(ResiliencyTestSuite): def _login(self): self.logger.debug('Logging in...') b64string = base64.encodestring('%s:%s' % (self.slaprunner_user, self.slaprunner_password))[:-1] - self._opener_director.addheaders = [('Authorization', 'Basic %s'%b64string)] + self._opener_director.addheaders = [ + ('Authorization', 'Basic %s' % b64string), + # By default we will prefer to receive JSON to simplify + # treatments of the response + ("Accept", "application/json"), + ] def _retrieveInstanceLogFile(self): """