From: Jan Fajerski Date: Fri, 19 Jun 2020 10:58:17 +0000 (+0200) Subject: ceph-volume batch: use disk.Size for size args X-Git-Tag: v14.2.13~5^2~19 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7a5706cef3692ff4628250ca70494d2a0742a3e0;p=ceph.git ceph-volume batch: use disk.Size for size args Signed-off-by: Jan Fajerski (cherry picked from commit 0bc7f7424cdd0a2c5f2cd777467814dbb3959fb4) --- diff --git a/src/ceph-volume/ceph_volume/devices/lvm/batch.py b/src/ceph-volume/ceph_volume/devices/lvm/batch.py index 56c5a59f95c1e..b2f667d9d6538 100644 --- a/src/ceph-volume/ceph_volume/devices/lvm/batch.py +++ b/src/ceph-volume/ceph_volume/devices/lvm/batch.py @@ -233,7 +233,7 @@ class Batch(object): ) parser.add_argument( '--block-db-size', - type=int, + type=disk.Size.parse, help='Set (or override) the "bluestore_block_db_size" value, in bytes' ) parser.add_argument( @@ -243,7 +243,7 @@ class Batch(object): ) parser.add_argument( '--block-wal-size', - type=int, + type=disk.Size.parse, help='Set (or override) the "bluestore_block_wal_size" value, in bytes' ) parser.add_argument( @@ -253,7 +253,7 @@ class Batch(object): ) parser.add_argument( '--journal-size', - type=int, + type=disk.Size.parse, help='Override the "osd_journal_size" value, in megabytes' ) parser.add_argument( @@ -556,4 +556,6 @@ class Batch(object): return report def report_json(self): - return self._get_osd_plan() + # cast all values to string so that the report can be dumped in to + # json.dumps + return {k: str(v) for k, v in self._get_osd_plan().items()} diff --git a/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py index cd1c4b7af4d9f..874acd6b70d47 100644 --- a/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py +++ b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py @@ -19,6 +19,27 @@ class TestBatch(object): batch.ensure_disjoint_device_lists(devices, db_devices) assert 'Device lists are not disjoint' in str(disjoint_ex.value) + @pytest.mark.parametrize('format_', ['pretty', 'json', 'json-pretty']) + def test_json_report(self, format_, factory, conf_ceph_stub, mock_device_generator): + # just ensure reporting works + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + devs = [mock_device_generator() for _ in range(5)] + args = factory(data_slots=1, + osds_per_device=1, + osd_ids=[], + report=True, + format=format_, + devices=devs, + db_devices=[], + wal_devices=[], + bluestore=True, + block_db_size="1G", + ) + b = batch.Batch([]) + plan = b.get_plan(args) + b.args = args + b.report(plan) + def test_get_physical_osds_return_len(self, factory, mock_devices_available, osds_per_device):