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:
Scott Hussey 2017-07-10 20:35:13 -05:00
parent 5252c2c941
commit 9c0873a587
6 changed files with 23 additions and 71 deletions

View File

@ -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()

View File

@ -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())

View File

@ -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)

View File

@ -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,

View File

@ -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

View File

@ -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())