Re: [Kimchi-devel] [PATCH V3] [Kimchi] Handle Libvirt host ENOSPC event

Hi Lucio, Some test cases are failing with this patch. Could you fix it and resend? Thanks, Aline Manera --------------------- [alinefm@alinefm-TP440 kimchi]$ sudo cat /tmp/tmp.QLQ6K1z9cG *** Running feature tests *** *** Feature tests completed *** KCHVM0056E: KCHVM0056E libvirt: error : invalid argument: event callback already tracked Traceback (most recent call last): File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/usr/lib64/python2.7/unittest/__main__.py", line 12, in <module> main(module=None) File "/usr/lib64/python2.7/unittest/main.py", line 94, in __init__ self.parseArgs(argv) File "/usr/lib64/python2.7/unittest/main.py", line 149, in parseArgs self.createTests() File "/usr/lib64/python2.7/unittest/main.py", line 158, in createTests self.module) File "/usr/lib64/python2.7/unittest/loader.py", line 130, in loadTestsFromNames suites = [self.loadTestsFromName(name, module) for name in names] File "/usr/lib64/python2.7/unittest/loader.py", line 91, in loadTestsFromName module = __import__('.'.join(parts_copy)) File "test_livemigration.py", line 91, in <module> class LiveMigrationTests(unittest.TestCase): File "test_livemigration.py", line 273, in LiveMigrationTests @unittest.skipUnless(check_if_vm_migration_test_possible(), File "test_livemigration.py", line 76, in check_if_vm_migration_test_possible inst = model.Model(objstore_loc='/tmp/kimchi-store-test') File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirt.libvirtError: invalid argument: event callback already tracked .*** Running feature tests *** libvirt: Domain Config error : this function is not supported by the connection driver: virDomainAttachDeviceFlags *** Feature tests completed *** cpu_info topology not supported. libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices ..libvirt: error : invalid argument: event callback already tracked Ecpu_info topology not supported. libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices .cpu_info topology not supported. libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices .libvirt: error : invalid argument: event callback already tracked Eslibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Ecpu_info topology not supported. libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices cpu_info topology not supported. cpu_info topology not supported. WOKOBJST0001E: WOKOBJST0001E .libvirt: error : invalid argument: event callback already tracked Ecpu_info topology not supported. libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices WOKOBJST0001E: WOKOBJST0001E libvirt: Domain Config error : this function is not supported by the connection driver: virDomainMemoryStats WOKOBJST0001E: WOKOBJST0001E libvirt: Domain Config error : this function is not supported by the connection driver: virDomainMemoryStats KCHVM0033E: KCHVM0033E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E WOKOBJST0001E: WOKOBJST0001E .libvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Ecpu_info topology not supported. libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices libvirt: Node Device Driver error : this function is not supported by the connection driver: virConnectListAllNodeDevices WOKOBJST0001E: WOKOBJST0001E libvirt: Domain Config error : this function is not supported by the connection driver: virDomainMemoryStats libvirt: Test Driver error : Domain not found KCHVM0002E: KCHVM0002E .libvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked Elibvirt: error : invalid argument: event callback already tracked E ====================================================================== ERROR: test_delete_running_vm (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 1198, in test_delete_running_vm inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_image_based_template (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 266, in test_image_based_template inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_template_creates_user_defined_vol_format_instead_default (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 753, in test_template_creates_user_defined_vol_format_instead_default inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_template_get_default_vol_format_from_conf (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 728, in test_template_get_default_vol_format_from_conf inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_template_uses_qcow2_format_if_no_user_or_default_defined (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 782, in test_template_uses_qcow2_format_if_no_user_or_default_defined inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_cdrom (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 581, in test_vm_cdrom inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_disk (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 485, in test_vm_disk inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_edit (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 955, in test_vm_edit objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_graphics (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 313, in test_vm_graphics inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_ifaces (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 365, in test_vm_ifaces inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_lifecycle (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 142, in test_vm_lifecycle inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_list_sorted (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 1225, in test_vm_list_sorted inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_memory_hotplug (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 807, in test_vm_memory_hotplug inst = model.Model(None, objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_netboot (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 436, in test_vm_netboot inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_serial (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 344, in test_vm_serial inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ====================================================================== ERROR: test_vm_storage_provisioning (test_model.ModelTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_model.py", line 671, in test_vm_storage_provisioning inst = model.Model(objstore_loc=self.tmp_store) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/model.py", line 54, in __init__ self.events.handleEnospc(self.conn) File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtevents.py", line 83, in handleEnospc libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON File "/home/alinefm/wok/src/wok/plugins/kimchi/model/libvirtconnection.py", line 67, in wrapper ret = f(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4919, in domainEventRegisterAny raise libvirtError ('virConnectDomainEventRegisterAny() failed', conn=self) libvirtError: invalid argument: event callback already tracked ---------------------------------------------------------------------- Ran 25 tests in 15.769s FAILED (errors=16, skipped=1) On 05/23/2016 05:46 PM, Lucio Correia wrote:
When storage pool is out of space and guest requires more, guest is paused and nothing is told to the user. This patch uses Libvirt Event handling and Asynchronous Notifications mechanism to tell web users about what happened.
Signed-off-by: Lucio Correia <luciojhc@linux.vnet.ibm.com> --- i18n.py | 1 + model/libvirtevents.py | 25 +++++++++++++++++++++++++ model/model.py | 3 +++ 3 files changed, 29 insertions(+)
Changes in v3: rebased with master
diff --git a/i18n.py b/i18n.py index 3a5a9d1..2d8390f 100644 --- a/i18n.py +++ b/i18n.py @@ -335,6 +335,7 @@ messages = { "KCHEVENT0001E": _("Failed to register the default event implementation."), "KCHEVENT0002E": _("Failed to register timeout event."), "KCHEVENT0003E": _("Failed to Run the default event implementation."), + "KCHEVENT0004W": _("I/O error on guest '%(vm)s': storage pool out of space for %(devAlias)s (%(srcPath)s)."),
# These messages (ending with L) are for user log purposes "KCHNET0001L": _("Created %(connection)s virtual network '%(name)s'"), diff --git a/model/libvirtevents.py b/model/libvirtevents.py index ab5c17d..00e9433 100644 --- a/model/libvirtevents.py +++ b/model/libvirtevents.py @@ -22,6 +22,9 @@ import libvirt import time
from wok.exception import OperationFailed +from wok.message import WokMessage +from wok.model.notifications import add_notification +from wok.utils import wok_log
class LibvirtEvents(object): @@ -57,3 +60,25 @@ class LibvirtEvents(object): # Event loop handler used to limit length of waiting for any other event. def _kimchi_EventTimeout(self, timer, opaque): time.sleep(1) + + def event_enospc_cb(self, conn, dom, path, dev, action, reason, args): + if reason == "enospc": + info = { + "vm": dom.name(), + "srcPath": path, + "devAlias": dev, + } + add_notification("KCHEVENT0004W", info, '/plugins/kimchi') + msg = WokMessage("KCHEVENT0004W", info, '/plugins/kimchi') + wok_log.warning(msg.get_text()) + + def handleEnospc(self, conn): + """ + Register Libvirt IO_ERROR_REASON event to handle host ENOSPC + """ + conn.get().domainEventRegisterAny( + None, + libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON, + self.event_enospc_cb, + libvirt.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON + ) diff --git a/model/model.py b/model/model.py index ed474d2..327d5a7 100644 --- a/model/model.py +++ b/model/model.py @@ -50,6 +50,9 @@ class Model(BaseModel): 'eventsloop': self.events} models = []
+ # Register for Libvirt's host ENOSPC event and notify UI if it happens + self.events.handleEnospc(self.conn) + # Import task model from Wok instances = get_instances('wok.model.tasks') for instance in instances:
participants (1)
-
Aline Manera