[libvirt] [PATCH v1.1 1/2] cmdDomblkinfo: introduce --all to show all block devices info
Chen Hanxiao
chen_han_xiao at 126.com
Mon Jun 11 10:14:24 UTC 2018
At 2018-06-09 04:49:08, "John Ferlan" <jferlan at redhat.com> wrote:
>
>
>On 06/07/2018 12:19 AM, Chen Hanxiao wrote:
>> From: Chen Hanxiao <chenhanxiao at gmail.com>
>>
>> This patch introduces --all to show all block devices info
>> of guests like:
>>
>> virsh # domblkinfo w08 --all
>> Target Capacity Allocation Physical
>> ---------------------------------------------------
>> hda 42949672960 9878110208 9878110208
>> vda 10737418240 10736439296 10737418240
>>
>
>You don't handle the --pretty at all.
Will do in v2.
>
>> Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
>> ---
...
>> + vshPrint(ctl, "%-15s %-.3lf %s\n", _("Physical:"), val, unit);
>
>Maybe you should create/insert a patch which "first just" moves the
>printing to a separate method such as :
>
>static void
>cmdDomblkinfoPrint(vshControl *ctl,
> const virDomainBlockInfo *info,
> bool human)
>
>Passing
>
> cmdDomblkinfoPrint(ctl, &info, human);
>
>Then when adding the "all" functionality, the printing does get a bit
>trickier, but it's not impossible to figure out. Look at the volume
>list details code for some ideas... The real "problem" lies in the
>length of the data and trying to figure an optimal sizes to create the
>formatting string so that everything looks good. Consider small sizes
>and larger sizes in the output. When printing pretty - you won't have
>something like "1000.000 MiB" because that'd be "1.000 GiB". At the
>very least you'd have:
>
> 1.000 GiB 1.000 GiB 1.000 GiB
>
>and at the very most you'd have
>
> 999.000 MiB 999.000 MiB 999.000 MiB
>
>right? So make everything line up from that knowledge.
>
>
We can use virAsprintf to combine val and unit together.
As the longest len(999.000 MiB) = 12, so %-15s will be enough.
Thanks for your comments.
V2 will come soon.
Regards,
- Chen
More information about the libvir-list
mailing list