(fix) Fix builddata API issue
The builddata API was passing a kwarg as a parameter causing a failure accessing database. Also update the log extraction to improve description in the builddata Change-Id: I01b4cbb14eea5c513a164818160fb10a693c4696
This commit is contained in:
parent
246775da42
commit
7b6af1bdc9
|
@ -398,12 +398,14 @@ class TaskBuilddataResource(StatefulResource):
|
||||||
@policy.ApiEnforcer('physical_provisioner:read_build_data')
|
@policy.ApiEnforcer('physical_provisioner:read_build_data')
|
||||||
def on_get(self, req, resp, task_id):
|
def on_get(self, req, resp, task_id):
|
||||||
try:
|
try:
|
||||||
bd_list = self.state_manager.get_build_data(task_id=task_id)
|
bd_list = self.state_manager.get_build_data(task_id=uuid.UUID(task_id))
|
||||||
if not bd_list:
|
if not bd_list:
|
||||||
resp.status = falcon.HTTP_404
|
resp.status = falcon.HTTP_404
|
||||||
return
|
return
|
||||||
resp.body = json.dumps(bd_list)
|
resp.body = json.dumps([bd.to_dict() for bd in bd_list])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
self.error(req.context, "Unknown error: %s" % (str(e)))
|
||||||
resp.body = "Unexpected error."
|
resp.body = "Unexpected error."
|
||||||
resp.status = falcon.HTTP_500
|
resp.status = falcon.HTTP_500
|
||||||
|
return
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
|
@ -52,17 +52,18 @@ class BaseMaasAction(BaseAction):
|
||||||
self.logger = logging.getLogger(
|
self.logger = logging.getLogger(
|
||||||
config.config_mgr.conf.logging.nodedriver_logger_name)
|
config.config_mgr.conf.logging.nodedriver_logger_name)
|
||||||
|
|
||||||
def _add_detail_logs(self, node, machine, data_gen, result_type='all'):
|
def _add_detail_logs(self, node, machine, stage, result_type='all'):
|
||||||
result_details = machine.get_task_results(result_type=result_type)
|
result_details = machine.get_task_results(result_type=result_type)
|
||||||
for r in result_details:
|
for r in result_details:
|
||||||
bd = objects.BuildData(
|
if r.get_decoded_data():
|
||||||
node_name=node.name,
|
bd = objects.BuildData(
|
||||||
task_id=self.task.task_id,
|
node_name=node.name,
|
||||||
collected_date=r.updated,
|
task_id=self.task.task_id,
|
||||||
generator=data_gen,
|
collected_date=r.updated,
|
||||||
data_format='text/plain',
|
generator="{}:{}".format(stage, r.name),
|
||||||
data_element=r.get_decoded_data())
|
data_format='text/plain',
|
||||||
self.state_manager.post_build_data(bd)
|
data_element=r.get_decoded_data())
|
||||||
|
self.state_manager.post_build_data(bd)
|
||||||
log_href = "%s/tasks/%s/builddata" % (
|
log_href = "%s/tasks/%s/builddata" % (
|
||||||
get_internal_api_href("v1.0"), str(self.task.task_id))
|
get_internal_api_href("v1.0"), str(self.task.task_id))
|
||||||
self.task.result.add_link('detail_logs', log_href)
|
self.task.result.add_link('detail_logs', log_href)
|
||||||
|
@ -1013,12 +1014,12 @@ class ConfigureHardware(BaseMaasAction):
|
||||||
self._add_detail_logs(
|
self._add_detail_logs(
|
||||||
n,
|
n,
|
||||||
machine,
|
machine,
|
||||||
'maas_commission_log',
|
'commission',
|
||||||
result_type='commissioning')
|
result_type='commissioning')
|
||||||
self._add_detail_logs(
|
self._add_detail_logs(
|
||||||
n,
|
n,
|
||||||
machine,
|
machine,
|
||||||
'maas_testing_log',
|
'testing',
|
||||||
result_type='testing')
|
result_type='testing')
|
||||||
elif machine.status_name in ['Commissioning', 'Testing']:
|
elif machine.status_name in ['Commissioning', 'Testing']:
|
||||||
msg = "Located node %s in MaaS, node already being commissioned. Skipping..." % (
|
msg = "Located node %s in MaaS, node already being commissioned. Skipping..." % (
|
||||||
|
@ -1052,6 +1053,7 @@ class ConfigureHardware(BaseMaasAction):
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
msg = "Error commissioning node %s: %s" % (n.name, str(ex))
|
msg = "Error commissioning node %s: %s" % (n.name, str(ex))
|
||||||
self.logger.warning(msg)
|
self.logger.warning(msg)
|
||||||
|
self.logger.debug("Unhandled exception attempting to commission node.", exc_info=ex)
|
||||||
self.task.add_status_msg(
|
self.task.add_status_msg(
|
||||||
msg=msg, error=True, ctx=n.name, ctx_type='node')
|
msg=msg, error=True, ctx=n.name, ctx_type='node')
|
||||||
self.task.failure(focus=n.get_id())
|
self.task.failure(focus=n.get_id())
|
||||||
|
@ -2172,10 +2174,8 @@ class DeployNode(BaseMaasAction):
|
||||||
self.task.add_status_msg(
|
self.task.add_status_msg(
|
||||||
msg=msg, error=True, ctx=n.name, ctx_type='node')
|
msg=msg, error=True, ctx=n.name, ctx_type='node')
|
||||||
self.task.failure(focus=n.get_id())
|
self.task.failure(focus=n.get_id())
|
||||||
|
|
||||||
self._add_detail_logs(
|
self._add_detail_logs(
|
||||||
n, machine, 'maas_deploy_log', result_type='deploy')
|
n, machine, 'deploy', result_type='deploy')
|
||||||
|
|
||||||
self.task.set_status(hd_fields.TaskStatus.Complete)
|
self.task.set_status(hd_fields.TaskStatus.Complete)
|
||||||
self.task.save()
|
self.task.save()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue