[virt-tools-list] [virt-manager] [PATCH 2/4] Output the qemu guest agent lifecycle events in debug mode

Lin Ma lma at suse.com
Sat Jun 30 05:41:27 UTC 2018



On 06/27/2018 05:39 AM, Cole Robinson wrote:
> On 06/24/2018 11:46 PM, Lin Ma wrote:
>> Signed-off-by: Lin Ma <lma at suse.com>
>> ---
>>   virtManager/connection.py | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/virtManager/connection.py b/virtManager/connection.py
>> index 76e78c49..0b83bccf 100644
>> --- a/virtManager/connection.py
>> +++ b/virtManager/connection.py
>> @@ -763,6 +763,12 @@ class vmmConnection(vmmGObject):
>>           else:
>>               self.schedule_priority_tick(pollvm=True, force=True)
>>   
>> +    def _domain_agent_lifecycle_event(self, conn, domain, state, reason, userdata):
>> +
>> +        name = domain.name()
>> +        logging.debug("domain agent lifecycle event: domain=%s %s", name,
>> +                LibvirtEnumMap.domain_agent_lifecycle_str(state, reason))
>> +
> I'm guessing pylint here warns about unused arguments?

ok, I'll add  ignore = conn and ignore = userdata.

>>       def _network_lifecycle_event(self, conn, network, state, reason, userdata):
>>           ignore = conn
>>           ignore = userdata
>> @@ -842,6 +848,10 @@ class vmmConnection(vmmGObject):
>>                   self.get_backend().domainEventRegisterAny(
>>                   None, libvirt.VIR_DOMAIN_EVENT_ID_LIFECYCLE,
>>                   self._domain_lifecycle_event, None))
>> +            self._domain_cb_ids.append(
>> +                self.get_backend().domainEventRegisterAny(
>> +                None, libvirt.VIR_DOMAIN_EVENT_ID_AGENT_LIFECYCLE,
>> +                self._domain_agent_lifecycle_event, None))
>>               self.using_domain_events = True
>>               logging.debug("Using domain events")
>>           except Exception as e:
>>
> I don't like that if we fail registering agent events, we will disable
> domain events entirely. I'd rather have it work like the xml misc events
> below, where we just log a message if it fails. In fact can this be
> folded into the xml misc events somehow?
>
Due to the _domain_xml_misc_event don't parse the 'args',  It can't 
translate the  'state' code to string, it only output:
"DEBUG (connection:744) domain xmlmisc event: domain=sles15rc4 
event=VIR_DOMAIN_EVENT_ID_AGENT_LIFECYCLE args=[1, 2]"

So I want to make the changes as below, What do you think?
-         def _add_domain_xml_event(eventname, eventval):
+        def _add_domain_xml_event(eventname, eventval, cb=None):
               if not self.using_domain_events:
                   return
+            if not cb:
+                cb = self._domain_xml_misc_event
......
           _add_domain_xml_event("VIR_DOMAIN_EVENT_ID_DEVICE_ADDED", 19)
+ _add_domain_xml_event("VIR_DOMAIN_EVENT_ID_AGENT_LIFECYCLE", 18, 
self._domain_agent_lifecycle_event)

Thanks,
Lin




More information about the virt-tools-list mailing list