(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')
|
||||
def on_get(self, req, resp, task_id):
|
||||
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:
|
||||
resp.status = falcon.HTTP_404
|
||||
return
|
||||
resp.body = json.dumps(bd_list)
|
||||
resp.body = json.dumps([bd.to_dict() for bd in bd_list])
|
||||
except Exception as e:
|
||||
self.error(req.context, "Unknown error: %s" % (str(e)))
|
||||
resp.body = "Unexpected error."
|
||||
resp.status = falcon.HTTP_500
|
||||
return
|
||||
resp.status = falcon.HTTP_200
|
||||
|
@ -52,17 +52,18 @@ class BaseMaasAction(BaseAction):
|
||||
self.logger = logging.getLogger(
|
||||
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)
|
||||
for r in result_details:
|
||||
bd = objects.BuildData(
|
||||
node_name=node.name,
|
||||
task_id=self.task.task_id,
|
||||
collected_date=r.updated,
|
||||
generator=data_gen,
|
||||
data_format='text/plain',
|
||||
data_element=r.get_decoded_data())
|
||||
self.state_manager.post_build_data(bd)
|
||||
if r.get_decoded_data():
|
||||
bd = objects.BuildData(
|
||||
node_name=node.name,
|
||||
task_id=self.task.task_id,
|
||||
collected_date=r.updated,
|
||||
generator="{}:{}".format(stage, r.name),
|
||||
data_format='text/plain',
|
||||
data_element=r.get_decoded_data())
|
||||
self.state_manager.post_build_data(bd)
|
||||
log_href = "%s/tasks/%s/builddata" % (
|
||||
get_internal_api_href("v1.0"), str(self.task.task_id))
|
||||
self.task.result.add_link('detail_logs', log_href)
|
||||
@ -1013,12 +1014,12 @@ class ConfigureHardware(BaseMaasAction):
|
||||
self._add_detail_logs(
|
||||
n,
|
||||
machine,
|
||||
'maas_commission_log',
|
||||
'commission',
|
||||
result_type='commissioning')
|
||||
self._add_detail_logs(
|
||||
n,
|
||||
machine,
|
||||
'maas_testing_log',
|
||||
'testing',
|
||||
result_type='testing')
|
||||
elif machine.status_name in ['Commissioning', 'Testing']:
|
||||
msg = "Located node %s in MaaS, node already being commissioned. Skipping..." % (
|
||||
@ -1052,6 +1053,7 @@ class ConfigureHardware(BaseMaasAction):
|
||||
except Exception as ex:
|
||||
msg = "Error commissioning node %s: %s" % (n.name, str(ex))
|
||||
self.logger.warning(msg)
|
||||
self.logger.debug("Unhandled exception attempting to commission node.", exc_info=ex)
|
||||
self.task.add_status_msg(
|
||||
msg=msg, error=True, ctx=n.name, ctx_type='node')
|
||||
self.task.failure(focus=n.get_id())
|
||||
@ -2172,10 +2174,8 @@ class DeployNode(BaseMaasAction):
|
||||
self.task.add_status_msg(
|
||||
msg=msg, error=True, ctx=n.name, ctx_type='node')
|
||||
self.task.failure(focus=n.get_id())
|
||||
|
||||
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.save()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user