Source code for virtualbox.library_ext.vbox
import virtualbox
from virtualbox import library
"""
Add helper code to the default ISession class.
"""
# Configure IVirtualBox bootstrap to build from vboxapi getVirtualBox
[docs]class IVirtualBox(library.IVirtualBox):
# Global flag to assert version on object construction.
assert_version = True
__doc__ = library.IVirtualBox.__doc__
def __init__(self, interface=None, manager=None):
if interface is not None:
super(IVirtualBox, self).__init__(interface)
elif manager is not None:
self._i = manager.get_virtualbox()._i
else:
manager = virtualbox.Manager()
self._i = manager.get_virtualbox()._i
this_version = ".".join(self.version.split('.')[0:2])
build_version = ".".join(self.version.split(library.vbox_version)[0:2])
if IVirtualBox.assert_version and this_version == build_version:
msg = ("pyvbox built against version %s != "
"installed VirtualBox version %s.\n"
"Set vbox.VirtualBox.assert_version = False to "
"disable the version check assertion") % (this_version,
build_version)
raise EnvironmentError(msg)
[docs] def register_on_machine_state_changed(self, callback):
"""Set the callback function to consume on machine state changed events.
Callback receives a IMachineStateChangedEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_machine_state_changed
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_machine_data_changed(self, callback):
"""Set the callback function to consume on machine data changed events.
Callback receives a IMachineDataChangedEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_machine_data_changed
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_machine_registered(self, callback):
"""Set the callback function to consume on machine registered events.
Callback receives a IMachineRegisteredEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_machine_registered
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_snapshot_deleted(self, callback):
"""Set the callback function to consume on snapshot deleted events.
Callback receives a ISnapshotDeletedEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_snapshot_deleted
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_snapshot_taken(self, callback):
"""Set the callback function to consume on snapshot taken events.
Callback receives a ISnapshotTakenEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_snapshot_taken
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_snapshot_changed(self, callback):
"""Set the callback function to consume on snapshot changed events
which occur when snapshot properties have been changed.
Callback receives a ISnapshotChangedEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_snapshot_changed
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_guest_property_changed(self, callback):
"""Set the callback function to consume on guest property changed
events.
Callback receives a IGuestPropertyChangedEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_guest_property_changed
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_session_state_changed(self, callback):
"""Set the callback function to consume on session state changed
events.
Callback receives a ISessionStateChangedEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_session_state_changed
return self.event_source.register_callback(callback, event_type)
[docs] def register_on_event_source_changed(self, callback):
"""Set the callback function to consume on event source changed
events. This occurs when a listener is added or removed.
Callback receives a IEventSourceChangedEvent object.
Returns the callback_id
"""
event_type = library.VBoxEventType.on_event_source_changed
return self.event_source.register_callback(callback, event_type)