# Log what we found. logging.debug("%s: detected operating system: %s %s %d.%d (%s)", prettyvm, typ, distro, major_version, minor_version, product_name) logging.debug("hostname: %s", hostname) if icon: logging.debug("icon: %d bytes", len(icon)) if apps: logging.debug("# apps: %d", len(apps)) data = vmmInspectionData() data.type = str(type) data.distro = str(distro) data.major_version = int(major_version) data.minor_version = int(minor_version) data.hostname = str(hostname) data.product_name = str(product_name) data.product_variant = str(product_variant) data.icon = str(icon) data.applications = list(apps) self._set_vm_inspection_data(vm, data) def _set_vm_inspection_data(self, vm, data): vm.inspection = data vm.inspection_data_updated() self._cached_data[vm.get_uuid()] = data vmmGObject.type_register(vmmInspection)
actions["resume"].set_property("visible", is_paused) def run_vm_action(self, ignore, signal_name, uuid): uri = None for tmpuri, vm_mappings in self.conn_vm_menuitems.items(): if vm_mappings.get(uuid): uri = tmpuri break if not uri: return self.emit(signal_name, uri, uuid) def exit_app(self, ignore): self.emit("action-exit-app") vmmGObject.type_register(vmmSystray) vmmSystray.signal_new(vmmSystray, "action-toggle-manager", []) vmmSystray.signal_new(vmmSystray, "action-view-manager", []) vmmSystray.signal_new(vmmSystray, "action-suspend-domain", [str, str]) vmmSystray.signal_new(vmmSystray, "action-resume-domain", [str, str]) vmmSystray.signal_new(vmmSystray, "action-run-domain", [str, str]) vmmSystray.signal_new(vmmSystray, "action-shutdown-domain", [str, str]) vmmSystray.signal_new(vmmSystray, "action-reboot-domain", [str, str]) vmmSystray.signal_new(vmmSystray, "action-destroy-domain", [str, str]) vmmSystray.signal_new(vmmSystray, "action-show-host", [str]) vmmSystray.signal_new(vmmSystray, "action-show-vm", [str, str]) vmmSystray.signal_new(vmmSystray, "action-exit-app", [])
def reboot_cb(): no_support = False reboot_err = None try: vm.reboot() except Exception, reboot_err: no_support = virtinst.support.is_error_nosupport(reboot_err) if not no_support: raise RuntimeError(_("Error rebooting domain: %s" % str(reboot_err))) if not no_support: return # Reboot isn't supported. Let's try to emulate it logging.debug("Hypervisor doesn't support reboot, let's fake it") try: vm.manual_reboot() except: logging.exception("Could not fake a reboot") # Raise the original error message raise RuntimeError(_("Error rebooting domain: %s" % str(reboot_err))) vmmAsyncJob.simple_async_noshow(reboot_cb, [], src, "") vmmGObject.type_register(vmmEngine) vmmEngine.signal_new(vmmEngine, "conn-added", [object]) vmmEngine.signal_new(vmmEngine, "conn-removed", [str])
def _xml_to_redefine(self): return _sanitize_xml(self.get_xml(inactive=True)) def _redefine_helper(self, origxml, newxml): origxml = _sanitize_xml(origxml) newxml = _sanitize_xml(newxml) if origxml != newxml: diff = "".join(difflib.unified_diff(origxml.splitlines(1), newxml.splitlines(1), fromfile="Original XML", tofile="New XML")) logging.debug("Redefining '%s' with XML diff:\n%s", self.get_name(), diff) self._define(newxml) else: logging.debug("Redefine requested, but XML didn't change!") # Make sure we have latest XML self.refresh_xml(forcesignal=True) return def _redefine_xml(self, newxml): origxml = self._xml_to_redefine() return self._redefine_helper(origxml, newxml) vmmGObject.signal_new(vmmLibvirtObject, "config-changed", []) vmmGObject.type_register(vmmLibvirtObject)
vmmGObject.__init__(self) self.name = name self.mac = mac self.shared = is_shared self.bridge = bridge # Used for HAL backend population self.hal_path = hal_path def _cleanup(self): pass def get_name(self): return self.name def is_shared(self): return self.shared def get_bridge(self): return self.bridge def get_mac(self): return self.mac def get_hal_path(self): return self.hal_path vmmGObject.type_register(vmmNetDevice)
return if (time.time() - self.last_tick) < MEDIA_TIMEOUT: return self.last_tick = time.time() try: self.nodedev_obj.refresh_xml() xml = self.nodedev_obj.get_xml() except: # Assume the device was removed return try: vobj = virtinst.NodeDeviceParser.parse(xml) has_media = vobj.media_available except: logging.exception("Node device CDROM polling failed") return if has_media == self.has_media(): return self.set_media(has_media, None, None) self.idle_emit(has_media and "media-added" or "media-removed") vmmGObject.type_register(vmmMediaDevice) vmmMediaDevice.signal_new(vmmMediaDevice, "media-added", []) vmmMediaDevice.signal_new(vmmMediaDevice, "media-removed", [])
chkbox = None res = None # Hide starting widgets self.hide() self.buf_expander.hide() for c in self.chk_vbox.get_children(): self.chk_vbox.remove(c) if details: self.buffer.set_text(details) title = title or "" self.buf_expander.show() if chktext: chkbox = gtk.CheckButton(chktext) self.chk_vbox.add(chkbox) chkbox.show() res = _launch_dialog(self, primary_text, secondary_text or "", title, sync=sync) if chktext: res = [res, chkbox.get_active()] return res vmmGObject.type_register(vmmErrorDialog)
def __init__(self, name, mac, is_shared, bridge=None, hal_path=None): vmmGObject.__init__(self) self.name = name self.mac = mac self.shared = is_shared self.bridge = bridge # Used for HAL backend population self.hal_path = hal_path def _cleanup(self): pass def get_name(self): return self.name def is_shared(self): return self.shared def get_bridge(self): return self.bridge def get_mac(self): return self.mac def get_hal_path(self): return self.hal_path vmmGObject.type_register(vmmNetDevice)
def reboot_cb(): no_support = False reboot_err = None try: vm.reboot() except Exception, reboot_err: no_support = virtinst.support.is_error_nosupport(reboot_err) if not no_support: raise RuntimeError( _("Error rebooting domain: %s" % str(reboot_err))) if not no_support: return # Reboot isn't supported. Let's try to emulate it logging.debug("Hypervisor doesn't support reboot, let's fake it") try: vm.manual_reboot() except: logging.exception("Could not fake a reboot") # Raise the original error message raise RuntimeError( _("Error rebooting domain: %s" % str(reboot_err))) vmmAsyncJob.simple_async_noshow(reboot_cb, [], src, "") vmmGObject.type_register(vmmEngine) vmmEngine.signal_new(vmmEngine, "conn-added", [object]) vmmEngine.signal_new(vmmEngine, "conn-removed", [str])
return _sanitize_xml(self.get_xml(inactive=True)) def _redefine_helper(self, origxml, newxml): origxml = _sanitize_xml(origxml) newxml = _sanitize_xml(newxml) if origxml != newxml: #unified_diff->For two lists of strings, return a delta in unified diff format. diff = "".join(difflib.unified_diff(origxml.splitlines(1), newxml.splitlines(1), fromfile="Original XML", tofile="New XML")) logging.debug("Redefining '%s' with XML diff:\n%s", self.get_name(), diff) self._define(newxml) else: logging.debug("Redefine requested, but XML didn't change!") # Make sure we have latest XML self.refresh_xml(forcesignal=True) return def _redefine_xml(self, newxml): origxml = self._xml_to_redefine() return self._redefine_helper(origxml, newxml) vmmGObject.signal_new(vmmLibvirtObject, "config-changed", []) vmmGObject.type_register(vmmLibvirtObject)