From 0b63377b67c9835dcffd8aef7223a0236b6c1d67 Mon Sep 17 00:00:00 2001 From: Zhu Lingshan Date: Mon, 9 Nov 2015 16:26:19 +0800 Subject: [PATCH] creation of fileio backend target silently fails if size not specified --- targetcli/ui_backstore.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/targetcli/ui_backstore.py b/targetcli/ui_backstore.py index 7fa75fc..b8b0180 100644 --- a/targetcli/ui_backstore.py +++ b/targetcli/ui_backstore.py @@ -340,11 +340,23 @@ def ui_command_create(self, name, file_or_dev, size=None, # use given file size only if backing file does not exist if os.path.isfile(file_or_dev): new_size = str(os.path.getsize(file_or_dev)) - if size: + if new_size: self.shell.log.info("%s exists, using its size (%s bytes)" " instead" % (file_or_dev, new_size)) size = new_size + backstore = FileIOBackstore(self.next_hba_index(), mode='create') + try: + so = FileIOStorageObject( + backstore, name, file_or_dev, + size, + buffered_mode=self.prm_buffered(buffered)) + except Exception, exception: + backstore.delete() + raise exception + self.shell.log.info("Created fileio %s." % name) + ui_so = UIStorageObject(so, self) + return self.new_node(ui_so) elif os.path.exists(file_or_dev): raise ExecutionError("Path %s exists but is not a file" % file_or_dev) else: