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 09.03.2017 17:54, Paolo Bonzini wrote:
> 
> 
> 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! :)

I'm not going to argue with that!

Ciao,
Stefan




[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