Register all gobject signals through vmmGObject baseclass

Allows us to remove gobject imports in various places which will help when
merging code with TUI.
This commit is contained in:
Cole Robinson 2011-04-18 12:39:53 -04:00
parent 6ef71911ce
commit efde9cb863
32 changed files with 256 additions and 448 deletions

View File

@ -75,10 +75,6 @@ def set_list_selection(widget, rownum):
selection.select_path(path)
class vmmAddHardware(vmmGObjectUI):
__gsignals__ = {
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
}
def __init__(self, vm):
vmmGObjectUI.__init__(self,
"vmm-add-hardware.glade", "vmm-add-hardware")
@ -1272,4 +1268,5 @@ class vmmAddHardware(vmmGObjectUI):
elif page == PAGE_NETWORK:
self.emit("action-show-help", "virt-manager-network")
gobject.type_register(vmmAddHardware)
vmmAddHardware.type_register(vmmAddHardware)
vmmAddHardware.signal_new(vmmAddHardware, "action-show-help", [str])

View File

@ -41,6 +41,13 @@ class vmmGObject(gobject.GObject):
def type_register(*args, **kwargs):
gobject.type_register(*args, **kwargs)
@staticmethod
def signal_new(klass, signal, args):
gobject.signal_new(signal, klass,
gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
args)
def __init__(self):
gobject.GObject.__init__(self)
self.config = util.running_config

View File

@ -20,8 +20,6 @@
import logging
import gobject
import virtManager.uihelpers as uihelpers
import virtManager.util as util
from virtManager.baseclass import vmmGObjectUI
@ -29,13 +27,6 @@ from virtManager.mediadev import MEDIA_FLOPPY
from virtManager.storagebrowse import vmmStorageBrowser
class vmmChooseCD(vmmGObjectUI):
__gsignals__ = {
"cdrom-chosen": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
# dev, new path
(gobject.TYPE_PYOBJECT, str)),
}
def __init__(self, dev_id_info, connection, media_type):
vmmGObjectUI.__init__(self, "vmm-choose-cd.glade", "vmm-choose-cd")
@ -170,3 +161,4 @@ class vmmChooseCD(vmmGObjectUI):
self.storage_browser.show(self.topwin, self.conn)
vmmGObjectUI.type_register(vmmChooseCD)
vmmChooseCD.signal_new(vmmChooseCD, "cdrom-chosen", [object, str])

View File

@ -21,10 +21,8 @@
import logging
import os
import gobject
import gtk
from virtManager.baseclass import vmmGObjectUI
from virtManager.asyncjob import vmmAsyncJob
from virtManager.createmeter import vmmCreateMeter
@ -63,12 +61,65 @@ NETWORK_INFO_NEW_MAC = 2
# XXX: What to do for cleanup if clone fails?
# XXX: Disable mouse scroll for combo boxes
class vmmCloneVM(vmmGObjectUI):
__gsignals__ = {
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
}
def can_we_clone(conn, vol, path):
"""Is the passed path even clone-able"""
ret = True
msg = None
if not path:
msg = _("No storage to clone.")
elif vol:
# Managed storage
if not virtinst.Storage.is_create_vol_from_supported(conn.vmm):
if conn.is_remote() or not os.access(path, os.R_OK):
msg = _("Connection does not support managed storage cloning.")
else:
is_dev = path.startswith("/dev")
if conn.is_remote():
msg = _("Cannot clone unmanaged remote storage.")
elif not os.access(path, os.R_OK):
if is_dev:
msg = _("Block devices to clone must be libvirt\n"
"managed storage volumes.")
else:
msg = _("No write access to parent directory.")
elif not os.path.exists(path):
msg = _("Path does not exist.")
if msg:
ret = False
return (ret, msg)
def do_we_default(conn, vol, path, ro, shared, devtype):
""" Returns (do we clone by default?, info string if not)"""
ignore = conn
info = ""
def append_str(str1, str2, delim=", "):
if not str2:
return str1
if str1:
str1 += delim
str1 += str2
return str1
if (devtype == virtinst.VirtualDisk.DEVICE_CDROM or
devtype == virtinst.VirtualDisk.DEVICE_FLOPPY):
info = append_str(info, _("Removable"))
if ro:
info = append_str(info, _("Read Only"))
elif not vol and path and not os.access(path, os.W_OK):
info = append_str(info, _("No write access"))
if shared:
info = append_str(info, _("Shareable"))
return (not info, info)
class vmmCloneVM(vmmGObjectUI):
def __init__(self, orig_vm):
vmmGObjectUI.__init__(self, "vmm-clone.glade", "vmm-clone")
self.orig_vm = orig_vm
@ -812,61 +863,4 @@ class vmmCloneVM(vmmGObjectUI):
return
vmmGObjectUI.type_register(vmmCloneVM)
def can_we_clone(conn, vol, path):
"""Is the passed path even clone-able"""
ret = True
msg = None
if not path:
msg = _("No storage to clone.")
elif vol:
# Managed storage
if not virtinst.Storage.is_create_vol_from_supported(conn.vmm):
if conn.is_remote() or not os.access(path, os.R_OK):
msg = _("Connection does not support managed storage cloning.")
else:
is_dev = path.startswith("/dev")
if conn.is_remote():
msg = _("Cannot clone unmanaged remote storage.")
elif not os.access(path, os.R_OK):
if is_dev:
msg = _("Block devices to clone must be libvirt\n"
"managed storage volumes.")
else:
msg = _("No write access to parent directory.")
elif not os.path.exists(path):
msg = _("Path does not exist.")
if msg:
ret = False
return (ret, msg)
def do_we_default(conn, vol, path, ro, shared, devtype):
""" Returns (do we clone by default?, info string if not)"""
ignore = conn
info = ""
def append_str(str1, str2, delim=", "):
if not str2:
return str1
if str1:
str1 += delim
str1 += str2
return str1
if (devtype == virtinst.VirtualDisk.DEVICE_CDROM or
devtype == virtinst.VirtualDisk.DEVICE_FLOPPY):
info = append_str(info, _("Removable"))
if ro:
info = append_str(info, _("Read Only"))
elif not vol and path and not os.access(path, os.W_OK):
info = append_str(info, _("No write access"))
if shared:
info = append_str(info, _("Shareable"))
return (not info, info)
vmmCloneVM.signal_new(vmmCloneVM, "action-show-help", [str])

View File

@ -18,13 +18,14 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import virtinst
import logging
import dbus
import socket
import gtk
import virtinst
import dbus
from virtManager.baseclass import vmmGObjectUI
HV_XEN = 0
@ -47,13 +48,6 @@ def default_conn_user(conn):
return current_user()
class vmmConnect(vmmGObjectUI):
__gsignals__ = {
"completed": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, object, object)),
"cancelled": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ())
}
def __init__(self):
vmmGObjectUI.__init__(self,
"vmm-open-connection.glade",
@ -404,3 +398,5 @@ class vmmConnect(vmmGObjectUI):
vmmGObjectUI.type_register(vmmConnect)
vmmConnect.signal_new(vmmConnect, "completed", [str, object, object])
vmmConnect.signal_new(vmmConnect, "cancelled", [])

View File

@ -18,9 +18,6 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import logging
import os
import sys
@ -30,71 +27,24 @@ import threading
from time import time
from socket import gethostbyaddr, gethostname
import gtk
import dbus
import libvirt
import virtinst
from virtManager import util
from virtManager.baseclass import vmmGObject
from virtManager.domain import vmmDomain
from virtManager.network import vmmNetwork
from virtManager.storagepool import vmmStoragePool
from virtManager.interface import vmmInterface
from virtManager.netdev import vmmNetDevice
from virtManager.mediadev import vmmMediaDevice
from virtManager.baseclass import vmmGObject
from virtManager.nodedev import vmmNodeDevice
class vmmConnection(vmmGObject):
__gsignals__ = {
"vm-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"vm-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"net-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"net-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"net-started": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"net-stopped": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"pool-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"pool-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"pool-started": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"pool-stopped": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"interface-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"interface-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"interface-started": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"interface-stopped": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"nodedev-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"nodedev-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str]),
"mediadev-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[object]),
"mediadev-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str]),
"resources-sampled": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[]),
"state-changed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[]),
"connect-error": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str]),
}
STATE_DISCONNECTED = 0
STATE_CONNECTING = 1
@ -1149,8 +1099,8 @@ class vmmConnection(vmmGObject):
self.connectError = "%s\n\n%s" % (str(value), str(tb))
# We want to kill off this thread asap, so schedule a gobject
# idle even to inform the UI of result
# We want to kill off this thread asap, so schedule an
# idle event to inform the UI of result
logging.debug("Background open thread complete, scheduling notify")
self.safe_idle_add(self._open_notify)
self.connectThread = None
@ -1648,3 +1598,30 @@ class vmmConnection(vmmGObject):
self.config.get_iso_paths)
vmmGObject.type_register(vmmConnection)
vmmGObject.signal_new(vmmConnection, "vm-added", [str, str])
vmmGObject.signal_new(vmmConnection, "vm-removed", [str, str])
vmmGObject.signal_new(vmmConnection, "net-added", [str, str])
vmmGObject.signal_new(vmmConnection, "net-removed", [str, str])
vmmGObject.signal_new(vmmConnection, "net-started", [str, str])
vmmGObject.signal_new(vmmConnection, "net-stopped", [str, str])
vmmGObject.signal_new(vmmConnection, "pool-added", [str, str])
vmmGObject.signal_new(vmmConnection, "pool-removed", [str, str])
vmmGObject.signal_new(vmmConnection, "pool-started", [str, str])
vmmGObject.signal_new(vmmConnection, "pool-stopped", [str, str])
vmmGObject.signal_new(vmmConnection, "interface-added", [str, str])
vmmGObject.signal_new(vmmConnection, "interface-removed", [str, str])
vmmGObject.signal_new(vmmConnection, "interface-started", [str, str])
vmmGObject.signal_new(vmmConnection, "interface-stopped", [str, str])
vmmGObject.signal_new(vmmConnection, "nodedev-added", [str, str])
vmmGObject.signal_new(vmmConnection, "nodedev-removed", [str, str])
vmmGObject.signal_new(vmmConnection, "mediadev-added", [object])
vmmGObject.signal_new(vmmConnection, "mediadev-removed", [str])
vmmGObject.signal_new(vmmConnection, "resources-sampled", [])
vmmGObject.signal_new(vmmConnection, "state-changed", [])
vmmGObject.signal_new(vmmConnection, "connect-error", [str])

View File

@ -57,15 +57,6 @@ INSTALL_PAGE_IMPORT = 3
class vmmCreate(vmmGObjectUI):
__gsignals__ = {
"action-show-console": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-terminal": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
}
def __init__(self, engine):
vmmGObjectUI.__init__(self, "vmm-create.glade", "vmm-create")
self.engine = engine
@ -1879,3 +1870,6 @@ class vmmCreate(vmmGObjectUI):
return self.err.val_err(msg, extra)
vmmGObjectUI.type_register(vmmCreate)
vmmCreate.signal_new(vmmCreate, "action-show-console", [str, str])
vmmCreate.signal_new(vmmCreate, "action-show-terminal", [str, str])
vmmCreate.signal_new(vmmCreate, "action-show-help", [str])

View File

@ -18,7 +18,6 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import logging
@ -58,11 +57,6 @@ IP_STATIC = 1
IP_NONE = 2
class vmmCreateInterface(vmmGObjectUI):
__gsignals__ = {
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
}
def __init__(self, conn):
vmmGObjectUI.__init__(self,
"vmm-create-interface.glade",
@ -1164,3 +1158,4 @@ class vmmCreateInterface(vmmGObjectUI):
pass
vmmGObjectUI.type_register(vmmCreateInterface)
vmmCreateInterface.signal_new(vmmCreateInterface, "action-show-help", [str])

View File

@ -18,11 +18,11 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import logging
import re
import gtk
from virtManager.IPy import IP
from virtManager.network import vmmNetwork
from virtManager.baseclass import vmmGObjectUI
@ -36,10 +36,6 @@ PAGE_SUMMARY = 5
class vmmCreateNetwork(vmmGObjectUI):
__gsignals__ = {
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
}
def __init__(self, conn):
vmmGObjectUI.__init__(self, "vmm-create-net.glade", "vmm-create-net")
self.conn = conn
@ -439,3 +435,4 @@ class vmmCreateNetwork(vmmGObjectUI):
self.emit("action-show-help", "virt-manager-create-net-sumary")
vmmGObjectUI.type_register(vmmCreateNetwork)
vmmCreateNetwork.signal_new(vmmCreateNetwork, "action-show-help", [str])

View File

@ -34,9 +34,6 @@ PAGE_NAME = 0
PAGE_FORMAT = 1
class vmmCreatePool(vmmGObjectUI):
__gsignals__ = {
}
def __init__(self, conn):
vmmGObjectUI.__init__(self,
"vmm-create-pool.glade",

View File

@ -18,11 +18,10 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import logging
import gtk
from virtManager import util
from virtManager.baseclass import vmmGObjectUI
from virtManager.asyncjob import vmmAsyncJob
@ -34,10 +33,6 @@ DEFAULT_ALLOC = 0
DEFAULT_CAP = 1000
class vmmCreateVolume(vmmGObjectUI):
__gsignals__ = {
"vol-created": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, [])
}
def __init__(self, conn, parent_pool):
vmmGObjectUI.__init__(self, "vmm-create-vol.glade", "vmm-create-vol")
self.conn = conn
@ -279,3 +274,4 @@ class vmmCreateVolume(vmmGObjectUI):
return ret
vmmGObjectUI.type_register(vmmCreateVolume)
vmmCreateVolume.signal_new(vmmCreateVolume, "vol-created", [])

View File

@ -42,9 +42,6 @@ STORAGE_ROW_ICON_SIZE = 6
STORAGE_ROW_TOOLTIP = 7
class vmmDeleteDialog(vmmGObjectUI):
__gsignals__ = {
}
def __init__(self):
vmmGObjectUI.__init__(self, "vmm-delete.glade", "vmm-delete")
self.vm = None

View File

@ -218,40 +218,6 @@ def lookup_nodedev(vmmconn, hostdev):
return found_dev
class vmmDetails(vmmGObjectUI):
__gsignals__ = {
"action-show-console": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-save-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-destroy-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-suspend-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-resume-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-run-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-shutdown-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-reboot-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
"action-exit-app": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-view-manager": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-migrate-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-clone-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"details-closed": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ()),
"details-opened": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ()),
}
def __init__(self, vm, parent=None):
vmmGObjectUI.__init__(self, "vmm-details.glade", "vmm-details")
self.vm = vm
@ -2982,3 +2948,18 @@ class vmmDetails(vmmGObjectUI):
vmmGObjectUI.type_register(vmmDetails)
vmmDetails.signal_new(vmmDetails, "action-show-console", [str, str])
vmmDetails.signal_new(vmmDetails, "action-save-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-destroy-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-suspend-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-resume-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-run-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-shutdown-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-reboot-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-show-help", [str])
vmmDetails.signal_new(vmmDetails, "action-exit-app", [])
vmmDetails.signal_new(vmmDetails, "action-view-manager", [])
vmmDetails.signal_new(vmmDetails, "action-migrate-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "action-clone-domain", [str, str])
vmmDetails.signal_new(vmmDetails, "details-closed", [])
vmmDetails.signal_new(vmmDetails, "details-opened", [])

View File

@ -18,18 +18,16 @@
# MA 02110-1301 USA.
#
import libvirt
import logging
import time
import threading
import gobject
import libvirt
import virtinst
from virtinst.VirtualCharDevice import VirtualCharSpicevmcDevice
from virtManager import util
import virtinst.support as support
from virtManager import util
from virtManager.libvirtobject import vmmLibvirtObject
def compare_device(origdev, newdev, idx):
@ -121,15 +119,6 @@ class vmmDomainBase(vmmLibvirtObject):
Base class for vmmDomain objects. Provides common set up and methods
for domain backends (libvirt virDomain, virtinst Guest)
"""
__gsignals__ = {
"status-changed": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
[int, int]),
"resources-sampled": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
[]),
}
def __init__(self, connection, backend, uuid):
vmmLibvirtObject.__init__(self, connection)
@ -1639,5 +1628,9 @@ class vmmDomainVirtinst(vmmDomainBase):
raise NotImplementedError()
vmmLibvirtObject.type_register(vmmDomainVirtinst)
vmmLibvirtObject.type_register(vmmDomainBase)
vmmDomainBase.signal_new(vmmDomainBase, "status-changed", [int, int])
vmmDomainBase.signal_new(vmmDomainBase, "resources-sampled", [])
vmmLibvirtObject.type_register(vmmDomain)

View File

@ -209,13 +209,6 @@ def packagekit_search(session, pk_control, package_name, packages):
class vmmEngine(vmmGObject):
__gsignals__ = {
"connection-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[object]),
"connection-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str])
}
def __init__(self):
vmmGObject.__init__(self)
@ -1055,3 +1048,5 @@ class vmmEngine(vmmGObject):
vmmAsyncJob.simple_async_noshow(reboot_cb, [], src, "")
vmmGObject.type_register(vmmEngine)
vmmEngine.signal_new(vmmEngine, "connection-added", [object])
vmmEngine.signal_new(vmmEngine, "connection-removed", [str])

View File

@ -99,9 +99,6 @@ def draw_fill(cairo_ct, cell_area, points, taper=False):
class CellRendererSparkline(gtk.CellRenderer):
__gsignals__ = {
}
__gproperties__ = {
# 'name' : (gobject.TYPE_*,
# nickname, long desc, (type related args), mode)
@ -272,8 +269,6 @@ class CellRendererSparkline(gtk.CellRenderer):
setattr(self, name, value)
class Sparkline(gtk.DrawingArea):
__gsignals__ = {}
__gproperties__ = {
# 'name' : (gobject.TYPE_*,
# nickname, long desc, (type related args), mode)

View File

@ -21,9 +21,9 @@ import logging
import os
import glob
import gobject
import dbus
from virtManager.baseclass import vmmGObject
from virtManager.netdev import vmmNetDevice
from virtManager.mediadev import vmmMediaDevice
@ -35,20 +35,53 @@ def get_hal_helper():
_hal_helper = vmmHalHelper()
return _hal_helper
class vmmHalHelper(gobject.GObject):
__gsignals__ = {
"netdev-added": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[object]),
"optical-added" : (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[object]),
"optical-media-added" : (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str, str, str]),
"device-removed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[str]),
}
def get_net_bridge_owner(name_ignore, sysfspath):
# Now magic to determine if the device is part of a bridge
brportpath = os.path.join(sysfspath, "brport")
try:
if os.path.exists(brportpath):
brlinkpath = os.path.join(brportpath, "bridge")
dest = os.readlink(brlinkpath)
(ignore, bridge) = os.path.split(dest)
return bridge
except:
logging.exception("Unable to determine if device is shared")
return None
def get_net_mac_address(name_ignore, sysfspath):
mac = None
addrpath = sysfspath + "/address"
if os.path.exists(addrpath):
df = open(addrpath, 'r')
mac = df.readline().strip(" \n\t")
df.close()
return mac
def get_bonding_masters():
masters = []
if os.path.exists("/sys/class/net/bonding_masters"):
f = open("/sys/class/net/bonding_masters")
while True:
rline = f.readline()
if not rline:
break
if rline == "\x00":
continue
rline = rline.strip("\n\t")
masters = rline[:].split(' ')
return masters
def is_net_bonding_slave(name_ignore, sysfspath):
masterpath = sysfspath + "/master"
if os.path.exists(masterpath):
return True
return False
class vmmHalHelper(vmmGObject):
def __init__(self):
gobject.GObject.__init__(self)
vmmGObject.__init__(self)
self.bus = None
self.hal_iface = None
@ -84,7 +117,7 @@ class vmmHalHelper(gobject.GObject):
self.startup_error = str(e)
def connect(self, name, callback, *args):
handle_id = gobject.GObject.connect(self, name, callback, *args)
handle_id = vmmGObject.connect(self, name, callback, *args)
if name == "netdev-added":
self.populate_netdevs()
@ -283,49 +316,8 @@ class vmmHalHelper(gobject.GObject):
return None, None
gobject.type_register(vmmHalHelper)
def get_net_bridge_owner(name_ignore, sysfspath):
# Now magic to determine if the device is part of a bridge
brportpath = os.path.join(sysfspath, "brport")
try:
if os.path.exists(brportpath):
brlinkpath = os.path.join(brportpath, "bridge")
dest = os.readlink(brlinkpath)
(ignore, bridge) = os.path.split(dest)
return bridge
except:
logging.exception("Unable to determine if device is shared")
return None
def get_net_mac_address(name_ignore, sysfspath):
mac = None
addrpath = sysfspath + "/address"
if os.path.exists(addrpath):
df = open(addrpath, 'r')
mac = df.readline().strip(" \n\t")
df.close()
return mac
def get_bonding_masters():
masters = []
if os.path.exists("/sys/class/net/bonding_masters"):
f = open("/sys/class/net/bonding_masters")
while True:
rline = f.readline()
if not rline:
break
if rline == "\x00":
continue
rline = rline.strip("\n\t")
masters = rline[:].split(' ')
return masters
def is_net_bonding_slave(name_ignore, sysfspath):
masterpath = sysfspath + "/master"
if os.path.exists(masterpath):
return True
return False
vmmHalHelper.type_register(vmmHalHelper)
vmmHalHelper.signal_new(vmmHalHelper, "netdev-added", [object])
vmmHalHelper.signal_new(vmmHalHelper, "optical-added", [object])
vmmHalHelper.signal_new(vmmHalHelper, "optical-media-added", [str, str, str])
vmmHalHelper.signal_new(vmmHalHelper, "device-removed", [str])

View File

@ -18,10 +18,10 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import logging
import gtk
from virtinst import VirtualDisk
from virtinst import Storage
from virtinst import Interface
@ -41,20 +41,6 @@ INTERFACE_PAGE_INFO = 0
INTERFACE_PAGE_ERROR = 1
class vmmHost(vmmGObjectUI):
__gsignals__ = {
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
"action-exit-app": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-view-manager": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-restore-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str,)),
"host-closed": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ()),
"host-opened": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ()),
}
def __init__(self, conn):
vmmGObjectUI.__init__(self, "vmm-host.glade", "vmm-host")
self.conn = conn
@ -1203,3 +1189,9 @@ def get_pool_size_percent(conn, uuid):
return "<span size='small' color='#484848'>%s%%</span>" % int(per)
vmmGObjectUI.type_register(vmmHost)
vmmHost.signal_new(vmmHost, "action-show-help", [str])
vmmHost.signal_new(vmmHost, "action-exit-app", [])
vmmHost.signal_new(vmmHost, "action-view-manager", [])
vmmHost.signal_new(vmmHost, "action-restore-domain", [str])
vmmHost.signal_new(vmmHost, "host-closed", [])
vmmHost.signal_new(vmmHost, "host-opened", [])

View File

@ -24,8 +24,6 @@ from virtManager import util
from virtManager.libvirtobject import vmmLibvirtObject
class vmmInterface(vmmLibvirtObject):
__gsignals__ = {}
def __init__(self, connection, interface, name, active):
vmmLibvirtObject.__init__(self, connection)

View File

@ -29,8 +29,7 @@ try:
except:
logging.warning("gnomekeyring bindings not installed, no keyring support")
class vmmKeyring:
class vmmKeyring(object):
def __init__(self):
self.keyring = None
if not haveKeyring:

View File

@ -18,8 +18,6 @@
# MA 02110-1301 USA.
#
import gobject
import difflib
import logging
@ -37,12 +35,6 @@ def _sanitize_xml(xml):
return xml
class vmmLibvirtObject(vmmGObject):
__gsignals__ = {
"config-changed": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
[]),
}
def __init__(self, connection):
vmmGObject.__init__(self)
self.connection = connection
@ -150,4 +142,7 @@ class vmmLibvirtObject(vmmGObject):
origxml = self._xml_to_redefine()
return self._redefine_helper(origxml, newxml)
vmmGObject.signal_new(vmmLibvirtObject, "config-changed", [])
vmmGObject.type_register(vmmLibvirtObject)

View File

@ -18,11 +18,10 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import logging
import gtk
import virtManager.uihelpers as uihelpers
from virtManager.connection import vmmConnection
from virtManager.baseclass import vmmGObjectUI
@ -68,55 +67,6 @@ gtk.rc_parse_string(rcstring)
class vmmManager(vmmGObjectUI):
__gsignals__ = {
"action-show-connect": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-show-console": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-terminal": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-refresh-terminal": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-details": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-about": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-show-host": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
"action-show-preferences": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-show-create": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
"action-suspend-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-resume-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-run-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-shutdown-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-reboot-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-destroy-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-save-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-connect": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
"action-migrate-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-clone-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-exit-app": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"manager-closed": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ()),
"manager-opened": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ()),
}
def __init__(self, engine):
vmmGObjectUI.__init__(self, "vmm-manager.glade", "vmm-manager")
self.engine = engine
@ -1156,3 +1106,26 @@ class vmmManager(vmmGObjectUI):
cell.set_property('data_array', data)
vmmGObjectUI.type_register(vmmManager)
vmmManager.signal_new(vmmManager, "action-show-connect", [])
vmmManager.signal_new(vmmManager, "action-show-console", [str, str])
vmmManager.signal_new(vmmManager, "action-show-terminal", [str, str])
vmmManager.signal_new(vmmManager, "action-refresh-terminal", [str, str])
vmmManager.signal_new(vmmManager, "action-show-details", [str, str])
vmmManager.signal_new(vmmManager, "action-show-about", [])
vmmManager.signal_new(vmmManager, "action-show-host", [str])
vmmManager.signal_new(vmmManager, "action-show-preferences", [])
vmmManager.signal_new(vmmManager, "action-show-create", [str])
vmmManager.signal_new(vmmManager, "action-suspend-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-resume-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-run-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-shutdown-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-reboot-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-destroy-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-save-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-connect", [str])
vmmManager.signal_new(vmmManager, "action-show-help", [str])
vmmManager.signal_new(vmmManager, "action-migrate-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-clone-domain", [str, str])
vmmManager.signal_new(vmmManager, "action-exit-app", [])
vmmManager.signal_new(vmmManager, "manager-closed", [])
vmmManager.signal_new(vmmManager, "manager-opened", [])

View File

@ -18,7 +18,6 @@
# MA 02110-1301 USA.
#
import gobject
import logging
import virtinst
@ -31,13 +30,6 @@ MEDIA_CDROM = "cdrom"
MEDIA_TIMEOUT = 3
class vmmMediaDevice(vmmGObject):
__gsignals__ = {
"media-added" : (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
[]),
"media-removed" : (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
}
@staticmethod
def mediadev_from_nodedev(dev):
nodedev = dev.get_virtinst_obj()
@ -181,3 +173,5 @@ class vmmMediaDevice(vmmGObject):
return True
vmmGObject.type_register(vmmMediaDevice)
vmmMediaDevice.signal_new(vmmMediaDevice, "media-added", [])
vmmMediaDevice.signal_new(vmmMediaDevice, "media-removed", [])

View File

@ -18,13 +18,13 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import traceback
import logging
import threading
import gobject
import gtk
import virtinst
import libvirt
@ -47,9 +47,6 @@ def uri_join(uri_tuple):
class vmmMigrateDialog(vmmGObjectUI):
__gsignals__ = {
}
def __init__(self, vm, engine):
vmmGObjectUI.__init__(self, "vmm-migrate.glade", "vmm-migrate")
self.vm = vm

View File

@ -20,8 +20,6 @@
from virtManager.baseclass import vmmGObject
class vmmNetDevice(vmmGObject):
__gsignals__ = {}
def __init__(self, name, mac, is_shared, bridge=None, hal_path=None):
vmmGObject.__init__(self)

View File

@ -23,9 +23,6 @@ import virtinst
from virtManager.libvirtobject import vmmLibvirtObject
class vmmNodeDevice(vmmLibvirtObject):
__gsignals__ = {
}
def __init__(self, connection, backend, name):
vmmLibvirtObject.__init__(self, connection)

View File

@ -18,7 +18,6 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import virtManager.util as util
@ -28,10 +27,6 @@ PREFS_PAGE_STATS = 0
PREFS_PAGE_VM_PREFS = 1
class vmmPreferences(vmmGObjectUI):
__gsignals__ = {
"action-show-help": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
}
def __init__(self):
vmmGObjectUI.__init__(self, "vmm-preferences.glade", "vmm-preferences")
@ -298,3 +293,6 @@ class vmmPreferences(vmmGObjectUI):
# From the Preferences window, show the help document from
# the Preferences page
self.emit("action-show-help", "virt-manager-preferences-window")
vmmPreferences.type_register(vmmPreferences)
vmmPreferences.signal_new(vmmPreferences, "action-show-help", [str])

View File

@ -19,8 +19,7 @@
#
class vmmSecret:
class vmmSecret(object):
def __init__(self, name, secret=None, attributes=None):
self.name = name

View File

@ -18,11 +18,10 @@
# MA 02110-1301 USA.
#
import gobject
import gtk
import logging
import gtk
import virtinst
import virtManager.host
@ -31,11 +30,6 @@ from virtManager.createvol import vmmCreateVolume
from virtManager.baseclass import vmmGObjectUI
class vmmStorageBrowser(vmmGObjectUI):
__gsignals__ = {
"storage-browse-finish": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
}
def __init__(self, conn):
vmmGObjectUI.__init__(self,
"vmm-storage-browse.glade",
@ -342,3 +336,4 @@ class vmmStorageBrowser(vmmGObjectUI):
async=False)
vmmGObjectUI.type_register(vmmStorageBrowser)
vmmStorageBrowser.signal_new(vmmStorageBrowser, "storage-browse-finish", [str])

View File

@ -18,7 +18,6 @@
# MA 02110-1301 USA.
#
import gobject
import virtinst
from virtManager import util
@ -26,10 +25,6 @@ from virtManager.libvirtobject import vmmLibvirtObject
from virtManager.storagevol import vmmStorageVolume
class vmmStoragePool(vmmLibvirtObject):
__gsignals__ = {
"refreshed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, []),
}
def __init__(self, connection, pool, uuid, active):
vmmLibvirtObject.__init__(self, connection)
@ -140,3 +135,4 @@ class vmmStoragePool(vmmLibvirtObject):
self._volumes = new_vol_list
vmmLibvirtObject.type_register(vmmStoragePool)
vmmStoragePool.signal_new(vmmStoragePool, "refreshed", [])

View File

@ -22,8 +22,6 @@ from virtManager import util
from virtManager.libvirtobject import vmmLibvirtObject
class vmmStorageVolume(vmmLibvirtObject):
__gsignals__ = {}
def __init__(self, connection, vol, name):
vmmLibvirtObject.__init__(self, connection)

View File

@ -20,7 +20,6 @@
import logging
import gobject
import gtk
from virtManager.baseclass import vmmGObject
@ -43,33 +42,6 @@ def build_image_menu_item(label):
return menu_item
class vmmSystray(vmmGObject):
__gsignals__ = {
"action-toggle-manager": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-view-manager": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
"action-suspend-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-resume-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-run-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-shutdown-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-reboot-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-destroy-domain": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-host": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, [str]),
"action-show-details": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-show-console": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, (str, str)),
"action-exit-app": (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, []),
}
def __init__(self, engine):
vmmGObject.__init__(self)
@ -457,3 +429,15 @@ class vmmSystray(vmmGObject):
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-details", [str, str])
vmmSystray.signal_new(vmmSystray, "action-show-console", [str, str])
vmmSystray.signal_new(vmmSystray, "action-exit-app", [])