
On 03/05/2014 03:32 AM, Royce Lv wrote:
This is because blkid just retrieve a labelled block device while lsblk can identify all block devices, right?
Reviewed-by: Royce Lv<lvroyce@linux.vnet.ibm.com>
Minor suggestion for naming below.
On 2014年03月05日 05:09, Aline Manera wrote:
From: Aline Manera <alinefm@br.ibm.com>
While trying to extend a logical pool I got the following error message:
"/dev/vdb is not a valid disk/partition. Could not add it to the pool my-logical-pool"
But the same partition "/dev/vdb" is listed on GET /host/partitions. Then I realized the "blkid" is not the correct command to check a partition exists for raw disks.
From blkid man page: It can determine the type of content (e.g. filesystem or swap) that a block device holds, and also attributes (tokens, NAME=value pairs) from the content metadata (e.g. LABEL or UUID fields).
Which is not useful for a raw disk.
From lsblk man page: lsblk lists information about all or the specified block devices.
So use "lsblk" command instead of "blkid" to verify the disk exists in the system.
Signed-off-by: Aline Manera <alinefm@br.ibm.com> --- src/kimchi/model/storagepools.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/kimchi/model/storagepools.py b/src/kimchi/model/storagepools.py index 76ab2d6..d012ca9 100644 --- a/src/kimchi/model/storagepools.py +++ b/src/kimchi/model/storagepools.py @@ -254,7 +254,7 @@ class StoragePoolModel(object): def _update_lvm_disks(self, pool_name, disks): # check if all the disks/partitions exists in the host for disk in disks: - blkid_cmd = ['blkid', disk] + blkid_cmd = ['lsblk', disk] "blkid_cmd" variable name need to be changed because it refer to "lsblk" cmd.
Done
output, error, returncode = run_command(blkid_cmd) if returncode != 0: kimchi_log.error('%s is not a valid disk/partition. Could not ' @@ -281,6 +281,7 @@ class StoragePoolModel(object): pool.setAutostart(1) else: pool.setAutostart(0) + if 'disks' in params: # check if pool is type 'logical' xml = pool.XMLDesc(0)