core-admin/qubes/tools
Marek Marczykowski-Górecki bd9f1d2e7c
mgmt: add support for cancellable operations
Allow method handler to decide if operation could be cancelled. If yes,
when connection to the qubesd is terminated (and
protocol.connection_lost get called) the operation is cancelled using
standard asyncio method - in which case asyncio.CancelledError is thrown
inside method handler. This needs to be explicitly enabled, because
cancellable methods are much harder to write, to maintain consistent
system state.
Caveat: protocol.connection_lost is called only when trying to send some
data to it (and it's already terminated). Which makes this whole
mechanism useful only for events. Otherwise, when sending some data (and
possibly detecting that connection is broken), the operation is already
completed.

QubesOS/qubes-issues#2622
2017-05-12 14:25:26 +02:00
..
__init__.py Merge remote-tracking branch 'kalkin/device-assignments' into core3-devel 2017-04-21 17:09:33 +02:00
qmemmand.py qmemmand: fix systemd notification 2017-05-12 14:25:25 +02:00
qubes_create.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qubes_monitor_layout_notify.py qubes/events: they accept only keyword arguments 2017-02-21 14:46:42 +01:00
qubes_prefs.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qubesd_query.py pylint: do not interpret asyncio.ensure_future compat hack 2017-03-01 18:30:49 +01:00
qubesd.py mgmt: add support for cancellable operations 2017-05-12 14:25:26 +02:00
qvm_backup_restore.py Make pylint happy 2017-04-21 16:57:35 +02:00
qvm_backup.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_block.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_check.py Make pylint happy 2017-04-21 16:57:35 +02:00
qvm_clone.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_create.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_device.py qvm-device add support for assignments 2017-04-15 18:05:30 +02:00
qvm_features.py tools/qvm-features: make pylint happy 2017-02-15 00:01:33 +01:00
qvm_firewall.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_kill.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_ls.py Make pylint happy 2017-04-21 16:57:35 +02:00
qvm_pause.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_pool.py Make pylint happy 2017-04-21 16:57:35 +02:00
qvm_prefs.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_remove.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_run.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_shutdown.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_start.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_tags.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_template_commit.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_template_postprocess.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
qvm_unpause.py qubes: port core to python3 2017-01-20 16:42:51 +01:00