Remove sitename from task context
Initially tasks were implemented with the possibility a design may have multiple sites in it and the task would operate on only one of them. Now a site design can contain only a single site, so no need to include the sitename in the operating context
This commit is contained in:
parent
5252c2c941
commit
9c0873a587
|
@ -34,18 +34,17 @@ class TasksResource(StatefulResource):
|
|||
try:
|
||||
json_data = self.req_json(req)
|
||||
|
||||
sitename = json_data.get('sitename', None)
|
||||
design_id = json_data.get('design_id', None)
|
||||
action = json_data.get('action', None)
|
||||
node_filter = json_data.get('node_filter', None)
|
||||
|
||||
if sitename is None or design_id is None or action is None:
|
||||
self.info(req.context, "Task creation requires fields sitename, design_id, action")
|
||||
self.return_error(resp, falcon.HTTP_400, message="Task creation requires fields sitename, design_id, action", retry=False)
|
||||
if design_id is None or action is None:
|
||||
self.info(req.context, "Task creation requires fields design_id, action")
|
||||
self.return_error(resp, falcon.HTTP_400, message="Task creation requires fields design_id, action", retry=False)
|
||||
return
|
||||
|
||||
task = self.orchestrator.create_task(obj_task.OrchestratorTask, site=sitename,
|
||||
design_id=design_id, action=action, node_filter=node_filter)
|
||||
task = self.orchestrator.create_task(obj_task.OrchestratorTask, design_id=design_id,
|
||||
action=action, node_filter=node_filter)
|
||||
|
||||
task_thread = threading.Thread(target=self.orchestrator.execute_task, args=[task.get_id()])
|
||||
task_thread.start()
|
||||
|
|
|
@ -111,11 +111,6 @@ class MaasNodeDriver(NodeDriver):
|
|||
raise errors.DriverError("No design ID specified in task %s" %
|
||||
(task_id))
|
||||
|
||||
|
||||
if task.site_name is None:
|
||||
raise errors.DriverError("No site specified for task %s." %
|
||||
(task_id))
|
||||
|
||||
self.orchestrator.task_field_update(task.get_id(),
|
||||
status=hd_fields.TaskStatus.Running)
|
||||
|
||||
|
@ -127,8 +122,7 @@ class MaasNodeDriver(NodeDriver):
|
|||
|
||||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=task.action, site_name=task.site_name,
|
||||
task_scope={'site': task.site_name})
|
||||
action=task.action)
|
||||
runner = MaasTaskRunner(state_manager=self.state_manager,
|
||||
orchestrator=self.orchestrator,
|
||||
task_id=subtask.get_id())
|
||||
|
@ -165,8 +159,7 @@ class MaasNodeDriver(NodeDriver):
|
|||
|
||||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=task.action, site_name=task.site_name,
|
||||
task_scope={'site': task.site_name})
|
||||
action=task.action)
|
||||
runner = MaasTaskRunner(state_manager=self.state_manager,
|
||||
orchestrator=self.orchestrator,
|
||||
task_id=subtask.get_id())
|
||||
|
@ -211,8 +204,7 @@ class MaasNodeDriver(NodeDriver):
|
|||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.IdentifyNode,
|
||||
site_name=task.site_name,
|
||||
task_scope={'site': task.site_name, 'node_names': [n]})
|
||||
task_scope={'node_names': [n]})
|
||||
runner = MaasTaskRunner(state_manager=self.state_manager,
|
||||
orchestrator=self.orchestrator,
|
||||
task_id=subtask.get_id())
|
||||
|
@ -286,8 +278,7 @@ class MaasNodeDriver(NodeDriver):
|
|||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.ConfigureHardware,
|
||||
site_name=task.site_name,
|
||||
task_scope={'site': task.site_name, 'node_names': [n]})
|
||||
task_scope={'node_names': [n]})
|
||||
runner = MaasTaskRunner(state_manager=self.state_manager,
|
||||
orchestrator=self.orchestrator,
|
||||
task_id=subtask.get_id())
|
||||
|
@ -361,8 +352,7 @@ class MaasNodeDriver(NodeDriver):
|
|||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.ApplyNodeNetworking,
|
||||
site_name=task.site_name,
|
||||
task_scope={'site': task.site_name, 'node_names': [n]})
|
||||
task_scope={'node_names': [n]})
|
||||
runner = MaasTaskRunner(state_manager=self.state_manager,
|
||||
orchestrator=self.orchestrator,
|
||||
task_id=subtask.get_id())
|
||||
|
@ -436,8 +426,7 @@ class MaasNodeDriver(NodeDriver):
|
|||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.ApplyNodePlatform,
|
||||
site_name=task.site_name,
|
||||
task_scope={'site': task.site_name, 'node_names': [n]})
|
||||
task_scope={'node_names': [n]})
|
||||
runner = MaasTaskRunner(state_manager=self.state_manager,
|
||||
orchestrator=self.orchestrator,
|
||||
task_id=subtask.get_id())
|
||||
|
@ -512,8 +501,7 @@ class MaasNodeDriver(NodeDriver):
|
|||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.DeployNode,
|
||||
site_name=task.site_name,
|
||||
task_scope={'site': task.site_name, 'node_names': [n]})
|
||||
task_scope={'node_names': [n]})
|
||||
runner = MaasTaskRunner(state_manager=self.state_manager,
|
||||
orchestrator=self.orchestrator,
|
||||
task_id=subtask.get_id())
|
||||
|
|
|
@ -57,11 +57,6 @@ class ManualDriver(oob.OobDriver):
|
|||
raise errors.DriverError("No design ID specified in task %s" %
|
||||
(task_id))
|
||||
|
||||
|
||||
if task.site_name is None:
|
||||
raise errors.DriverError("Not site specified for task %s." %
|
||||
(task_id))
|
||||
|
||||
self.orchestrator.task_field_update(task.get_id(),
|
||||
status=hd_fields.TaskStatus.Running)
|
||||
|
||||
|
|
|
@ -67,11 +67,6 @@ class PyghmiDriver(oob.OobDriver):
|
|||
raise errors.DriverError("No design ID specified in task %s" %
|
||||
(task_id))
|
||||
|
||||
|
||||
if task.site_name is None:
|
||||
raise errors.DriverError("Not site specified for task %s." %
|
||||
(task_id))
|
||||
|
||||
self.orchestrator.task_field_update(task.get_id(),
|
||||
status=hd_fields.TaskStatus.Running)
|
||||
|
||||
|
@ -98,8 +93,7 @@ class PyghmiDriver(oob.OobDriver):
|
|||
subtask = self.orchestrator.create_task(task_model.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=task.action,
|
||||
task_scope={'site': task.site_name,
|
||||
'node_names': [n.get_name()]})
|
||||
task_scope={'node_names': [n.get_name()]})
|
||||
incomplete_subtasks.append(subtask.get_id())
|
||||
|
||||
runner = PyghmiTaskRunner(state_manager=self.state_manager,
|
||||
|
|
|
@ -79,15 +79,9 @@ class Task(object):
|
|||
|
||||
class OrchestratorTask(Task):
|
||||
|
||||
def __init__(self, site=None, design_id=None, **kwargs):
|
||||
def __init__(self, design_id=None, **kwargs):
|
||||
super(OrchestratorTask, self).__init__(**kwargs)
|
||||
|
||||
# Validate parameters based on action
|
||||
self.site = site
|
||||
|
||||
if self.site is None:
|
||||
raise ValueError("Orchestration Task requires 'site' parameter")
|
||||
|
||||
self.design_id = design_id
|
||||
|
||||
if self.action in [hd_fields.OrchestratorAction.VerifyNode,
|
||||
|
@ -99,7 +93,6 @@ class OrchestratorTask(Task):
|
|||
def to_dict(self):
|
||||
_dict = super(OrchestratorTask, self).to_dict()
|
||||
|
||||
_dict['site'] = self.site
|
||||
_dict['design_id'] = self.design_id
|
||||
_dict['node_filter'] = getattr(self, 'node_filter', None)
|
||||
|
||||
|
@ -109,17 +102,14 @@ class DriverTask(Task):
|
|||
def __init__(self, task_scope={}, **kwargs):
|
||||
super(DriverTask, self).__init__(**kwargs)
|
||||
|
||||
self.design_id = kwargs.get('design_id', 0)
|
||||
|
||||
self.site_name = task_scope.get('site', None)
|
||||
self.design_id = kwargs.get('design_id', None)
|
||||
|
||||
self.node_list = task_scope.get('node_names', [])
|
||||
|
||||
def to_dict(self):
|
||||
_dict = super(DriverTask, self).to_dict()
|
||||
|
||||
_dict['site_name'] = self.site_name
|
||||
_dict['design_id'] = self.design_id
|
||||
_dict['node_list'] = self.node_list
|
||||
|
||||
return _dict
|
||||
return _dict
|
||||
|
|
|
@ -94,7 +94,6 @@ class Orchestrator(object):
|
|||
% (task_id))
|
||||
|
||||
design_id = task.design_id
|
||||
task_site = task.site
|
||||
|
||||
# Just for testing now, need to implement with enabled_drivers
|
||||
# logic
|
||||
|
@ -157,16 +156,11 @@ class Orchestrator(object):
|
|||
result=hd_fields.ActionResult.Failure)
|
||||
return
|
||||
|
||||
task_scope = {
|
||||
'site': task.site
|
||||
}
|
||||
|
||||
worked = failed = False
|
||||
|
||||
site_network_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(),
|
||||
design_id=design_id,
|
||||
task_scope=task_scope,
|
||||
action=hd_fields.OrchestratorAction.CreateNetworkTemplate)
|
||||
|
||||
self.logger.info("Starting node driver task %s to create network templates" % (site_network_task.get_id()))
|
||||
|
@ -187,7 +181,6 @@ class Orchestrator(object):
|
|||
user_creds_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(),
|
||||
design_id=design_id,
|
||||
task_scope=task_scope,
|
||||
action=hd_fields.OrchestratorAction.ConfigureUserCredentials)
|
||||
|
||||
self.logger.info("Starting node driver task %s to configure user credentials" % (user_creds_task.get_id()))
|
||||
|
@ -217,8 +210,7 @@ class Orchestrator(object):
|
|||
result=final_result)
|
||||
return
|
||||
elif task.action == hd_fields.OrchestratorAction.VerifyNode:
|
||||
self.task_field_update(task_id,
|
||||
status=hd_fields.TaskStatus.Running)
|
||||
self.task_field_update(task_id, status=hd_fields.TaskStatus.Running)
|
||||
|
||||
site_design = self.get_effective_site(design_id)
|
||||
|
||||
|
@ -253,8 +245,7 @@ class Orchestrator(object):
|
|||
|
||||
target_names = [x.get_name() for x in oob_nodes]
|
||||
|
||||
task_scope = {'site' : task_site,
|
||||
'node_names' : target_names}
|
||||
task_scope = {'node_names' : target_names}
|
||||
|
||||
oob_driver_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(),
|
||||
|
@ -341,8 +332,7 @@ class Orchestrator(object):
|
|||
|
||||
target_names = [x.get_name() for x in oob_nodes]
|
||||
|
||||
task_scope = {'site' : task_site,
|
||||
'node_names' : target_names}
|
||||
task_scope = {'node_names' : target_names}
|
||||
|
||||
setboot_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(),
|
||||
|
@ -429,8 +419,7 @@ class Orchestrator(object):
|
|||
node_commission_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.ConfigureHardware,
|
||||
task_scope={'site': task_site,
|
||||
'node_names': node_identify_task.result_detail['successful_nodes']})
|
||||
task_scope={'node_names': node_identify_task.result_detail['successful_nodes']})
|
||||
|
||||
self.logger.info("Starting node driver task %s to commission nodes." % (node_commission_task.get_id()))
|
||||
node_driver.execute_task(node_commission_task.get_id())
|
||||
|
@ -482,8 +471,7 @@ class Orchestrator(object):
|
|||
|
||||
target_names = [x.get_name() for x in target_nodes]
|
||||
|
||||
task_scope = {'site' : task_site,
|
||||
'node_names' : target_names}
|
||||
task_scope = {'node_names' : target_names}
|
||||
|
||||
node_networking_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
|
@ -510,8 +498,7 @@ class Orchestrator(object):
|
|||
node_platform_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.ApplyNodePlatform,
|
||||
task_scope={'site': task_site,
|
||||
'node_names': node_networking_task.result_detail['successful_nodes']})
|
||||
task_scope={'node_names': node_networking_task.result_detail['successful_nodes']})
|
||||
self.logger.info("Starting node driver task %s to configure node platform." % (node_platform_task.get_id()))
|
||||
|
||||
node_driver.execute_task(node_platform_task.get_id())
|
||||
|
@ -532,8 +519,7 @@ class Orchestrator(object):
|
|||
node_deploy_task = self.create_task(tasks.DriverTask,
|
||||
parent_task_id=task.get_id(), design_id=design_id,
|
||||
action=hd_fields.OrchestratorAction.DeployNode,
|
||||
task_scope={'site': task_site,
|
||||
'node_names': node_platform_task.result_detail['successful_nodes']})
|
||||
task_scope={'node_names': node_platform_task.result_detail['successful_nodes']})
|
||||
|
||||
self.logger.info("Starting node driver task %s to deploy nodes." % (node_deploy_task.get_id()))
|
||||
node_driver.execute_task(node_deploy_task.get_id())
|
||||
|
|
Loading…
Reference in New Issue