Re: [PATCH 09/17] tools/kvm_stat: display guest name when using pid filter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 20/02/2017 16:42, Stefan Raspl wrote:
> +def get_gname_from_pid(pid):
> +    """Returns the guest name for a QEMU process pid.
> +
> +    Extracts the guest name from the QEMU comma line by processing the '-name'
> +    option. Will also handle names specified out of sequence.
> +
> +    """
> +    name = ''
> +    try:
> +        line = open('/proc/{}/cmdline'.format(pid), 'rb').read().split('\0')
> +        parms = line[line.index('-name') + 1].split(',')
> +        while '' in parms:
> +            # commas are escaped (i.e. ',,'), hence e.g. 'foo,bar' results in
> +            # ['foo', '', 'bar'], which we revert here
> +            idx = parms.index('')
> +            parms[idx - 1] += ',' + parms[idx + 1]
> +            del parms[idx:idx+2]
> +        # the '-name' switch allows for two ways to specify the guest name,
> +        # where the plain name overrides the name specified via 'guest='
> +        for arg in parms:
> +            if '=' not in arg:
> +                name = arg
> +                break
> +            if arg[:6] == 'guest=':
> +                name = arg[6:]
> +    except (ValueError, IOError, IndexError):
> +        pass
> +
> +    return name
> +
> +

That's as hideous as it is useful! :)

Paolo



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux