Project

General

Profile

Fix #46757

mgr/dashboard: Only show identify action if inventory device can blink

Added by Stephan Müller 4 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
dashboard/cephadm
Target version:
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature:

Description

If a device can't be blink but is manged by cephadm the action "Identify" will be shown in the inventory page. The problem is that the command doesn't throw an error if it fails on the dashboard. I observed the following error through running `ceph -W cephadm` in parallel to the execution.

2020-07-29T08:53:30.649950-0500 mgr.x [ERR] executing blink(([DeviceLightLoc(host='osd0', dev='/dev/vdb', path='/dev/vdb')],)) failed.
Traceback (most recent call last):
  File "/ceph/src/pybind/mgr/cephadm/utils.py", line 67, in do_work
    return f(*arg)
  File "/ceph/src/pybind/mgr/cephadm/module.py", line 1591, in blink
    raise OrchestratorError(
orchestrator._interface.OrchestratorError: Unable to affect ident light for osd0:/dev/vdb. Command: lsmcli local-disk-ident-led-on --path /dev/vdb
2020-07-29T08:53:30.653157-0500 mgr.x [ERR] _Promise failed
Traceback (most recent call last):
  File "/ceph/src/pybind/mgr/orchestrator/_interface.py", line 292, in _finalize
    next_result = self._on_complete(self._value)
  File "/ceph/src/pybind/mgr/cephadm/module.py", line 102, in <lambda>
    return CephadmCompletion(on_complete=lambda _: f(*args, **kwargs))
  File "/ceph/src/pybind/mgr/cephadm/module.py", line 1599, in blink_device_light
    return blink(locs)
  File "/ceph/src/pybind/mgr/cephadm/utils.py", line 73, in forall_hosts_wrapper
    return CephadmOrchestrator.instance._worker_pool.map(do_work, vals)
  File "/usr/lib64/python3.8/multiprocessing/pool.py", line 364, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/usr/lib64/python3.8/multiprocessing/pool.py", line 771, in get
    raise self._value
  File "/usr/lib64/python3.8/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/usr/lib64/python3.8/multiprocessing/pool.py", line 48, in mapstar
    return list(map(*args))
  File "/ceph/src/pybind/mgr/cephadm/utils.py", line 67, in do_work
    return f(*arg)
  File "/ceph/src/pybind/mgr/cephadm/module.py", line 1591, in blink
    raise OrchestratorError(
orchestrator._interface.OrchestratorError: Unable to affect ident light for osd0:/dev/vdb. Command: lsmcli local-disk-ident-led-on --path /dev/vdb

Also available in: Atom PDF