Merge branch 'events2'
* events2: events: add variable Admin API method name
This commit is contained in:
commit
f25321bdcc
@ -30,11 +30,13 @@ import qubesadmin.exc
|
|||||||
class EventsDispatcher(object):
|
class EventsDispatcher(object):
|
||||||
''' Events dispatcher, responsible for receiving events and calling
|
''' Events dispatcher, responsible for receiving events and calling
|
||||||
appropriate handlers'''
|
appropriate handlers'''
|
||||||
def __init__(self, app):
|
def __init__(self, app, api_method='admin.Events'):
|
||||||
'''Initialize EventsDispatcher'''
|
'''Initialize EventsDispatcher'''
|
||||||
#: Qubes() object
|
#: Qubes() object
|
||||||
self.app = app
|
self.app = app
|
||||||
|
|
||||||
|
self._api_method = api_method
|
||||||
|
|
||||||
#: event handlers - dict of event -> handlers
|
#: event handlers - dict of event -> handlers
|
||||||
self.handlers = {}
|
self.handlers = {}
|
||||||
|
|
||||||
@ -77,7 +79,7 @@ class EventsDispatcher(object):
|
|||||||
reader, writer = yield from asyncio.open_unix_connection(
|
reader, writer = yield from asyncio.open_unix_connection(
|
||||||
qubesadmin.config.QUBESD_SOCKET)
|
qubesadmin.config.QUBESD_SOCKET)
|
||||||
writer.write(b'dom0\0') # source
|
writer.write(b'dom0\0') # source
|
||||||
writer.write(b'admin.Events\0') # method
|
writer.write(self._api_method.encode() + b'\0') # method
|
||||||
writer.write(dest.encode('ascii') + b'\0') # dest
|
writer.write(dest.encode('ascii') + b'\0') # dest
|
||||||
writer.write(b'\0') # arg
|
writer.write(b'\0') # arg
|
||||||
writer.write_eof()
|
writer.write_eof()
|
||||||
@ -87,7 +89,7 @@ class EventsDispatcher(object):
|
|||||||
writer.close()
|
writer.close()
|
||||||
elif self.app.qubesd_connection_type == 'qrexec':
|
elif self.app.qubesd_connection_type == 'qrexec':
|
||||||
proc = yield from asyncio.create_subprocess_exec(
|
proc = yield from asyncio.create_subprocess_exec(
|
||||||
'qrexec-client-vm', dest, 'admin.Events',
|
'qrexec-client-vm', dest, self._api_method,
|
||||||
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
|
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
|
||||||
|
|
||||||
proc.stdin.write_eof()
|
proc.stdin.write_eof()
|
||||||
|
Loading…
Reference in New Issue
Block a user