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(a)linux.vnet.ibm.com>
Minor suggestion for naming below.
On 2014年03月05日 05:09, Aline Manera wrote:
> From: Aline Manera <alinefm(a)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(a)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)