]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
node-proxy: address `ceph orch hardware status` cmd 63556/head
authorGuillaume Abrioux <gabrioux@ibm.com>
Wed, 28 May 2025 11:33:10 +0000 (13:33 +0200)
committerGuillaume Abrioux <gabrioux@ibm.com>
Wed, 28 May 2025 11:33:10 +0000 (13:33 +0200)
commitfbcdf571ca11d1b9f504dba64c23fb9f389c0710
tree8f59cb5977a2a7bf7b2ddeb168cdc150b25ebdab
parent40cdb8c93a081fdf5ecaf63c22273dea9fd9afe6
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>
src/pybind/mgr/cephadm/inventory.py