Commit 206a30ad authored by Roque's avatar Roque

scalability: master frontend url get from test suite cluster configuration

- hardcoded parameter removed
- minor changes in slapos master communicator
parent d3318043
...@@ -54,9 +54,6 @@ from erp5.util.benchmark.thread import TestThread ...@@ -54,9 +54,6 @@ from erp5.util.benchmark.thread import TestThread
import signal import signal
from . import logger from . import logger
# TODO: some hardcoded values for dev purposes that will be removed soon
FRONTEND_SOFTWARE = "https://lab.node.vifib.com/nexedi/slapos/raw/1.0.56/software/apache-frontend/software.cfg"
FRONTEND_MASTER_DOMAIN = "scalability.nexedi.com" FRONTEND_MASTER_DOMAIN = "scalability.nexedi.com"
# max time to instance changing state: 2 hour # max time to instance changing state: 2 hour
MAX_INSTANCE_TIME = 60*60*2 MAX_INSTANCE_TIME = 60*60*2
...@@ -206,6 +203,7 @@ class ScalabilityTestRunner(): ...@@ -206,6 +203,7 @@ class ScalabilityTestRunner():
config = self._generateInstanceXML(software_configuration, config = self._generateInstanceXML(software_configuration,
test_result, test_suite, frontend_software, frontend_instance_guid) test_result, test_suite, frontend_software, frontend_instance_guid)
request_kw = {"partition_parameter_kw": {"_" : json.dumps(config)} } request_kw = {"partition_parameter_kw": {"_" : json.dumps(config)} }
self.slapos_communicator.requestInstanceStart(self.instance_title, request_kw) self.slapos_communicator.requestInstanceStart(self.instance_title, request_kw)
self.authorize_request = False self.authorize_request = False
return {'status_code' : 0} return {'status_code' : 0}
...@@ -386,6 +384,8 @@ Require valid-user ...@@ -386,6 +384,8 @@ Require valid-user
return False return False
def prepareFrontendMasterInstance(self, computer, frontend_software, test_suite_title): def prepareFrontendMasterInstance(self, computer, frontend_software, test_suite_title):
if not frontend_software:
return None
self.frontend_master_reference = "Scalability-Frontend-Master-" self.frontend_master_reference = "Scalability-Frontend-Master-"
self.frontend_master_reference += "("+test_suite_title+")-" self.frontend_master_reference += "("+test_suite_title+")-"
self.frontend_master_reference += str(computer).replace("'","") self.frontend_master_reference += str(computer).replace("'","")
...@@ -459,6 +459,7 @@ Require valid-user ...@@ -459,6 +459,7 @@ Require valid-user
node_test_suite.edit(configuration_list=configuration_list) node_test_suite.edit(configuration_list=configuration_list)
self.launcher_nodes_computer_guid = test_configuration['launcher_nodes_computer_guid'] self.launcher_nodes_computer_guid = test_configuration['launcher_nodes_computer_guid']
self.instance_title = self._generateInstanceTitle(node_test_suite.test_suite_title) self.instance_title = self._generateInstanceTitle(node_test_suite.test_suite_title)
self.frontend_software = configuration_list[0].get("frontend-url")
self.createSoftwareReachableProfilePath(node_test_suite) self.createSoftwareReachableProfilePath(node_test_suite)
logger.info("Software reachable profile path is: %s", self.reachable_profile) logger.info("Software reachable profile path is: %s", self.reachable_profile)
...@@ -471,7 +472,6 @@ Require valid-user ...@@ -471,7 +472,6 @@ Require valid-user
supply, supply,
self.reachable_profile, self.reachable_profile,
computer_guid=self.launcher_nodes_computer_guid[0]) computer_guid=self.launcher_nodes_computer_guid[0])
# Ask for SR installation # Ask for SR installation
for computer_guid in self.involved_nodes_computer_guid: for computer_guid in self.involved_nodes_computer_guid:
self._prepareSlapOS(self.reachable_profile, computer_guid) self._prepareSlapOS(self.reachable_profile, computer_guid)
...@@ -488,9 +488,6 @@ Require valid-user ...@@ -488,9 +488,6 @@ Require valid-user
time.sleep(interval_time) time.sleep(interval_time)
# TODO : remove the line below wich simulate an answer from slapos master # TODO : remove the line below wich simulate an answer from slapos master
self._comeBackFromDummySlapOS() self._comeBackFromDummySlapOS()
# Ask for frontend SR installation and instance request
# XXX TODO: frontend software url will come from test_configuration soon
self.frontend_software = FRONTEND_SOFTWARE
try: try:
self.frontend_instance_guid = self.prepareFrontendMasterInstance(self.launcher_nodes_computer_guid[0], self.frontend_instance_guid = self.prepareFrontendMasterInstance(self.launcher_nodes_computer_guid[0],
self.frontend_software, self.frontend_software,
...@@ -503,8 +500,7 @@ Require valid-user ...@@ -503,8 +500,7 @@ Require valid-user
logger.error("All softwares are not installed.") logger.error("All softwares are not installed.")
return {'status_code' : 1} return {'status_code' : 1}
self.authorize_request = True self.authorize_request = True
logger.debug("Softwares installed.") logger.debug("All software installed.")
# Launch instance # Launch instance
try: try:
self._createInstance(self.reachable_profile, self._createInstance(self.reachable_profile,
......
...@@ -104,7 +104,6 @@ class SlapOSMasterCommunicator(object): ...@@ -104,7 +104,6 @@ class SlapOSMasterCommunicator(object):
self.latest_state = state self.latest_state = state
return self.slap_order.request( return self.slap_order.request(
software_release=self.url, software_release=self.url,
software_type=software_type,
partition_reference=self.name, partition_reference=self.name,
shared=shared, shared=shared,
state=state, state=state,
...@@ -412,7 +411,7 @@ class SlapOSTester(SlapOSMasterCommunicator): ...@@ -412,7 +411,7 @@ class SlapOSTester(SlapOSMasterCommunicator):
self.instance = self._request(INSTANCE_STATE_STARTED, instance_title, request_kw, shared, software_type) self.instance = self._request(INSTANCE_STATE_STARTED, instance_title, request_kw, shared, software_type)
def requestInstanceStop(self, instance_title=None, request_kw=None, shared=False, software_type="RootSoftwareInstance"): def requestInstanceStop(self, instance_title=None, request_kw=None, shared=False, software_type="RootSoftwareInstance"):
self._request(INSTANCE_STATE_STOPPED, instance_title, request_kw, shared, software_type) self.instance = self._request(INSTANCE_STATE_STOPPED, instance_title, request_kw, shared, software_type)
def requestInstanceDestroy(self, instance_title=None, request_kw=None, shared=False): def requestInstanceDestroy(self, instance_title=None, request_kw=None, shared=False):
if not instance_title: if not instance_title:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment