]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
node-proxy: address `ceph orch hardware status` cmd 63787/head
authorGuillaume Abrioux <gabrioux@ibm.com>
Wed, 28 May 2025 11:33:10 +0000 (13:33 +0200)
committerGuillaume Abrioux <gabrioux@ibm.com>
Fri, 6 Jun 2025 06:34:49 +0000 (06:34 +0000)
commit217ac9f41f41e198e46f0a14df134861dff4e161
treef1fb72104ffc9eda93f4ce07d97cbcc80d9c92a9
parent0be80797c8871551e84032e9e4f76aa5052003ab
node-proxy: address `ceph orch hardware status` cmd

ce360a4a introduced a regression.

`ceph orch hardware status` fails when no hostname is passed (global
cluster hw status report).

Typical failure:

```
Error EINVAL: Traceback (most recent call last):
  File "/usr/share/ceph/mgr/mgr_module.py", line 1928, in _handle_command
    return self.handle_command(inbuf, cmd)
  File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 186, in handle_command
    return dispatch[cmd['prefix']].call(self, cmd, inbuf)
  File "/usr/share/ceph/mgr/mgr_module.py", line 527, in call
    return self.func(mgr, **kwargs)
  File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 122, in <lambda>
    wrapper_copy = lambda *l_args, **l_kwargs: wrapper(*l_args, **l_kwargs)  # noqa: E731
  File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 111, in wrapper
    return func(*args, **kwargs)
  File "/usr/share/ceph/mgr/orchestrator/module.py", line 553, in _hardware_status
    row = [k, v['sn']]
KeyError: 'sn'
```

Only the last node in the list has the `sn`, `host` and `firmwares`
information because of the wrong identation.

Fixes: https://tracker.ceph.com/issues/71472
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit fbcdf571ca11d1b9f504dba64c23fb9f389c0710)
src/pybind/mgr/cephadm/inventory.py