From 6075a109dfba30c89fc6f1fa95b66a327ee71450 Mon Sep 17 00:00:00 2001 From: Jan Fajerski Date: Wed, 30 Sep 2020 16:16:05 +0200 Subject: [PATCH] pybind/mgr/orchestrator: fix preview for new c-v batch output Signed-off-by: Jan Fajerski (cherry picked from commit 996df56a4aebe29e32fd529ae926ae484d240943) Conflicts: src/pybind/mgr/orchestrator/tests/test_orchestrator.py drop test_handle_command(), not added by us --- src/pybind/mgr/orchestrator/module.py | 14 ++---- .../orchestrator/tests/test_orchestrator.py | 45 ++++++++++++++++++- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/src/pybind/mgr/orchestrator/module.py b/src/pybind/mgr/orchestrator/module.py index 157c34f937597..47e01d3f0ab79 100644 --- a/src/pybind/mgr/orchestrator/module.py +++ b/src/pybind/mgr/orchestrator/module.py @@ -108,18 +108,12 @@ def preview_table_osd(data): if spec.get('error'): return spec.get('message') dg_name = spec.get('osdspec') - for osd in spec.get('data', {}).get('osds', []): - db_path = '-' - wal_path = '-' - block_db = osd.get('block.db', {}).get('path') - block_wal = osd.get('block.wal', {}).get('path') - block_data = osd.get('data', {}).get('path', '') + for osd in spec.get('data', []): + db_path = osd.get('block_db', '-') + wal_path = osd.get('block_wal', '-') + block_data = osd.get('data', '') if not block_data: continue - if block_db: - db_path = spec.get('data', {}).get('vg', {}).get('devices', []) - if block_wal: - wal_path = spec.get('data', {}).get('wal_vg', {}).get('devices', []) table.add_row(('osd', dg_name, host, block_data, db_path, wal_path)) return table.get_string() diff --git a/src/pybind/mgr/orchestrator/tests/test_orchestrator.py b/src/pybind/mgr/orchestrator/tests/test_orchestrator.py index fff2e245ce107..7767743186bcc 100644 --- a/src/pybind/mgr/orchestrator/tests/test_orchestrator.py +++ b/src/pybind/mgr/orchestrator/tests/test_orchestrator.py @@ -15,7 +15,7 @@ from tests import mock from orchestrator import raise_if_exception, Completion, ProgressReference from orchestrator import InventoryHost, DaemonDescription, ServiceDescription from orchestrator import OrchestratorValidationError -from orchestrator.module import to_format +from orchestrator.module import to_format, preview_table_osd def _test_resource(data, resource_class, extra=None): @@ -295,3 +295,46 @@ def test_event_multiline(): e = OrchestratorEvent(datetime.datetime.utcnow(), 'service', 'subject', 'ERROR', 'multiline\nmessage') assert OrchestratorEvent.from_json(e.to_json()) == e + + +def test_preview_table_osd_smoke(): + data = [ + { + 'service_type': 'osd', + 'data': + { + 'foo host': + [ + { + 'osdspec': 'foo', + 'error': '', + 'data': + [ + { + "block_db": "/dev/nvme0n1", + "block_db_size": "66.67 GB", + "data": "/dev/sdb", + "data_size": "300.00 GB", + "encryption": "None" + }, + { + "block_db": "/dev/nvme0n1", + "block_db_size": "66.67 GB", + "data": "/dev/sdc", + "data_size": "300.00 GB", + "encryption": "None" + }, + { + "block_db": "/dev/nvme0n1", + "block_db_size": "66.67 GB", + "data": "/dev/sdd", + "data_size": "300.00 GB", + "encryption": "None" + } + ] + } + ] + } + } + ] + preview_table_osd(data) -- 2.39.5