From 1949d3f024eefca2075db476d857120ae366476e Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Wed, 13 Jun 2018 11:38:39 +0200 Subject: [PATCH] spdkcli: add null bdev configuration Change-Id: Ic2e5e68dd794f10625ef689452f7370b4fb93408 Signed-off-by: Karol Latecki Reviewed-on: https://review.gerrithub.io/414953 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Jim Harris --- scripts/spdkcli/ui_node.py | 29 +++++++++++++++++++++++++++++ scripts/spdkcli/ui_root.py | 4 ++++ 2 files changed, 33 insertions(+) diff --git a/scripts/spdkcli/ui_node.py b/scripts/spdkcli/ui_node.py index 9e90b5101..a81d6c7f6 100644 --- a/scripts/spdkcli/ui_node.py +++ b/scripts/spdkcli/ui_node.py @@ -52,6 +52,7 @@ class UIBdevs(UINode): UIAIOBdev(self) UILvolBdev(self) UINvmeBdev(self) + UINullBdev(self) UISplitBdev(self) def ui_command_delete(self, name): @@ -282,6 +283,34 @@ class UINvmeBdev(UIBdev): self.refresh() +class UINullBdev(UIBdev): + def __init__(self, parent): + UIBdev.__init__(self, "Null", parent) + + def ui_command_create(self, name, size, block_size, uuid=None): + """ + Construct a Null bdev. + + Arguments: + name - Name to use for bdev. + size - Size in megabytes. + block_size - Integer, block size to use when constructing bdev. + uuid - Optional parameter. Custom UUID to use. If empty then random + will be generated. + """ + + size = self.ui_eval_param(size, "number", None) + block_size = self.ui_eval_param(block_size, "number", None) + num_blocks = size * 1024 * 1024 // block_size + + ret_name = self.get_root().create_null_bdev(num_blocks=num_blocks, + block_size=block_size, + name=name, uuid=uuid) + self.shell.log.info(ret_name) + self.get_root().refresh() + self.refresh() + + class UISplitBdev(UIBdev): def __init__(self, parent): UIBdev.__init__(self, "Split_Disk", parent) diff --git a/scripts/spdkcli/ui_root.py b/scripts/spdkcli/ui_root.py index 7af297595..564af452b 100644 --- a/scripts/spdkcli/ui_root.py +++ b/scripts/spdkcli/ui_root.py @@ -65,6 +65,10 @@ class UIRoot(UINode): response = rpc.bdev.construct_nvme_bdev(self.client, **kwargs) return self.print_array(response) + def create_null_bdev(self, **kwargs): + response = rpc.bdev.construct_null_bdev(self.client, **kwargs) + return self.print_array(response) + def get_lvol_stores(self): self.current_lvol_stores = rpc.lvol.get_lvol_stores(self.client) for lvs in self.current_lvol_stores: