summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Robinson <crobinso@redhat.com>2013-04-12 08:26:21 -0400
committerCole Robinson <crobinso@redhat.com>2013-04-13 13:40:29 -0400
commitae471007fc108cd10fb50808e2bea55822ce5dbe (patch)
tree9bbb65d1f2b0a668d4cd5ea9c778c3fcfe7fe292
parentd323fbbe23b6ac63543b376c89fb2b0812088682 (diff)
downloadvirt-manager-ae471007fc108cd10fb50808e2bea55822ce5dbe.tar.gz
Tons of misc pylint fixes
-rw-r--r--setup.py5
-rw-r--r--tests/clitest.py51
-rwxr-xr-xvirt-convert1
-rwxr-xr-xvirt-install4
-rwxr-xr-xvirt-manager2
-rwxr-xr-xvirt-manager-tui1
-rw-r--r--virtManager/autodrawer.py6
-rw-r--r--virtManager/config.py2
-rw-r--r--virtManager/connect.py12
-rw-r--r--virtManager/connection.py14
-rw-r--r--virtManager/console.py4
-rw-r--r--virtManager/create.py4
-rw-r--r--virtManager/createnet.py18
-rw-r--r--virtManager/error.py5
-rw-r--r--virtManager/graphwidgets.py16
-rw-r--r--virtManager/inspection.py2
-rw-r--r--virtManager/migrate.py1
-rw-r--r--virtManager/network.py8
-rw-r--r--virtManager/systray.py2
-rw-r--r--virtManagerTui/addnetwork.py5
-rw-r--r--virtManagerTui/listnetworks.py3
-rw-r--r--virtManagerTui/networkconfig.py21
-rw-r--r--virtconv/diskcfg.py8
-rw-r--r--virtconv/formats.py4
-rw-r--r--virtconv/netdevcfg.py4
-rw-r--r--virtconv/parsers/ovf.py68
-rw-r--r--virtconv/parsers/virtimage.py6
-rw-r--r--virtconv/parsers/vmx.py4
-rw-r--r--virtinst/CapabilitiesParser.py20
-rw-r--r--virtinst/CloneManager.py4
-rw-r--r--virtinst/DistroInstaller.py10
-rw-r--r--virtinst/DomainNumatune.py1
-rw-r--r--virtinst/FullVirtGuest.py1
-rw-r--r--virtinst/Guest.py20
-rw-r--r--virtinst/Installer.py2
-rw-r--r--virtinst/OSDistro.py12
-rw-r--r--virtinst/Storage.py11
-rw-r--r--virtinst/User.py2
-rw-r--r--virtinst/VirtualCharDevice.py2
-rw-r--r--virtinst/VirtualGraphics.py1
-rw-r--r--virtinst/VirtualNetworkInterface.py5
-rw-r--r--virtinst/XMLBuilderDomain.py5
-rw-r--r--virtinst/cli.py26
-rw-r--r--virtinst/osdict.py6
-rw-r--r--virtinst/support.py81
-rw-r--r--virtinst/util.py35
46 files changed, 280 insertions, 245 deletions
diff --git a/setup.py b/setup.py
index e1ed75c6..bb5f5cde 100644
--- a/setup.py
+++ b/setup.py
@@ -26,7 +26,7 @@ from virtcli import cliconfig
def _generate_potfiles_in():
def find(dirname, ext):
ret = []
- for root, dirnames, filenames in os.walk(dirname):
+ for root, ignore, filenames in os.walk(dirname):
for filename in fnmatch.filter(filenames, ext):
ret.append(os.path.join(root, filename))
ret.sort(key=lambda s: s.lower())
@@ -421,10 +421,11 @@ class CheckPylint(Command):
"I0011", # I0011: Warn about locally disabled pylint msgs
"R0201", # R0201: Method could be a function
- "W0142", # W0142: *Used * or ** magic*
+ "W0142", # W0142: Used * or ** magic*
"W0603", # W0603: Using the global statement
"W0702", # W0702: No exception type specified for 'catch'
"W0703", # W0703: Catch 'Exception'
+ "W1401", # W1401: Anomalous backslash in string
# May be useful to enable someday
diff --git a/tests/clitest.py b/tests/clitest.py
index bdbdfd83..47e5d92d 100644
--- a/tests/clitest.py
+++ b/tests/clitest.py
@@ -129,33 +129,30 @@ test_files = {
}
-"""
-CLI test matrix
-
-Any global args for every invocation should be added to default_args
-function, so that individual tests can easily overwrite them.
-
-Format:
-
-"appname" {
- "categoryfoo" : { Some descriptive test catagory name (e.g. storage)
-
- "args" : Args to be applied to all invocations in category
-
- "valid" : { # Argument strings that should succeed
- "--option --string --number1" # Some option string to test. The
- resulting cmdstr would be:
- $ appname globalargs categoryfoo_args --option --string --number1
- }
-
- "invalid" : { # Argument strings that should fail
- "--opt1 --opt2",
- }
- } # End categoryfoo
-
-}
- "
-"""
+# CLI test matrix
+#
+# Any global args for every invocation should be added to default_args
+# function, so that individual tests can easily overwrite them.
+#
+# Format:
+#
+# "appname" {
+# "categoryfoo" : { Some descriptive test catagory name (e.g. storage)
+#
+# "args" : Args to be applied to all invocations in category
+#
+# "valid" : { # Argument strings that should succeed
+# "--option --string --number1" # Some option string to test. The
+# resulting cmdstr would be:
+# $ appname globalargs categoryfoo_args --option --string --number1
+# }
+#
+# "invalid" : { # Argument strings that should fail
+# "--opt1 --opt2",
+# }
+# } # End categoryfoo
+#
+#}
def default_args(app, cli, testtype):
diff --git a/virt-convert b/virt-convert
index d11e3686..aa4ca457 100755
--- a/virt-convert
+++ b/virt-convert
@@ -29,7 +29,6 @@ from optparse import OptionGroup
import virtinst.cli as cli
from virtinst.cli import fail, print_stdout, print_stderr
-import virtinst.util as util
import virtconv.formats as formats
import virtconv.vmcfg as vmcfg
import virtconv.diskcfg as diskcfg
diff --git a/virt-install b/virt-install
index 03515cb1..88eaf060 100755
--- a/virt-install
+++ b/virt-install
@@ -279,7 +279,7 @@ def get_virt_type(conn, options):
caps=capabilities,
os_type=req_virt_type,
arch=arch,
- type=req_hv_type,
+ typ=req_hv_type,
accelerated=req_accel,
machine=options.machine)
except Exception, e:
@@ -566,7 +566,7 @@ def _run_console(args):
return child
os.execvp(args[0], args)
- os._exit(1)
+ os._exit(1) # pylint: disable=W0212
def vnc_console(dom, uri):
args = ["/usr/bin/virt-viewer",
diff --git a/virt-manager b/virt-manager
index eea78e3b..53e2170b 100755
--- a/virt-manager
+++ b/virt-manager
@@ -65,7 +65,7 @@ def drop_tty():
# tty. This prevents libvirt's SSH tunnels from prompting
# for user input if SSH keys/agent aren't configured.
if os.fork() != 0:
- os._exit(0)
+ os._exit(0) # pylint: disable=W0212
os.setsid()
diff --git a/virt-manager-tui b/virt-manager-tui
index c2b321c8..e27f39c8 100755
--- a/virt-manager-tui
+++ b/virt-manager-tui
@@ -21,7 +21,6 @@
import logging
import optparse
-import os
import sys
import traceback
diff --git a/virtManager/autodrawer.py b/virtManager/autodrawer.py
index 909f0422..79117592 100644
--- a/virtManager/autodrawer.py
+++ b/virtManager/autodrawer.py
@@ -304,6 +304,12 @@ class OverBox(Gtk.Box):
over.y = 0
self.overWidget.size_allocate(over)
+ # These make pylint happy
+ def show_all(self, *args, **kwargs):
+ return Gtk.Box.show(self, *args, **kwargs)
+ def destroy(self, *args, **kwargs):
+ return Gtk.Box.destroy(self, *args, **kwargs)
+
class Drawer(OverBox):
"""
diff --git a/virtManager/config.py b/virtManager/config.py
index ca755c32..a00052cf 100644
--- a/virtManager/config.py
+++ b/virtManager/config.py
@@ -151,7 +151,7 @@ class vmmConfig(object):
try:
# Check we can open the Python guestfs module.
- from guestfs import GuestFS
+ from guestfs import GuestFS # pylint: disable=F0401
g = GuestFS()
# Check for the first version which fixed Python GIL bug.
diff --git a/virtManager/connect.py b/virtManager/connect.py
index 3f712104..ee6a2291 100644
--- a/virtManager/connect.py
+++ b/virtManager/connect.py
@@ -160,12 +160,12 @@ class vmmConnect(vmmGObjectUI):
elif default.startswith("xen"):
self.widget("hypervisor").set_active(0)
- def add_service(self, interface, protocol, name, type, domain, flags):
+ def add_service(self, interface, protocol, name, typ, domain, flags):
ignore = flags
try:
# Async service resolving
res = self.server.ServiceResolverNew(interface, protocol, name,
- type, domain, -1, 0)
+ typ, domain, -1, 0)
resint = dbus.Interface(self.bus.get_object(
"org.freedesktop.Avahi", res),
"org.freedesktop.Avahi.ServiceResolver")
@@ -174,12 +174,12 @@ class vmmConnect(vmmGObjectUI):
except Exception, e:
logging.exception(e)
- def remove_service(self, interface, protocol, name, type, domain, flags):
+ def remove_service(self, interface, protocol, name, typ, domain, flags):
ignore = domain
ignore = protocol
ignore = flags
ignore = interface
- ignore = type
+ ignore = typ
try:
model = self.widget("hostname").get_model()
@@ -190,13 +190,13 @@ class vmmConnect(vmmGObjectUI):
except Exception, e:
logging.exception(e)
- def add_conn_to_list(self, interface, protocol, name, type, domain,
+ def add_conn_to_list(self, interface, protocol, name, typ, domain,
host, aprotocol, address, port, text, flags):
ignore = domain
ignore = protocol
ignore = flags
ignore = interface
- ignore = type
+ ignore = typ
ignore = text
ignore = aprotocol
ignore = port
diff --git a/virtManager/connection.py b/virtManager/connection.py
index e7b7b345..ab74f30a 100644
--- a/virtManager/connection.py
+++ b/virtManager/connection.py
@@ -259,7 +259,7 @@ class vmmConnection(vmmGObject):
self._check_caps()
return self._caps
- def get_max_vcpus(self, _type=None):
+ def get_max_vcpus(self, _type):
return virtinst.util.get_max_vcpus(self.vmm, _type)
def get_host_info(self):
@@ -1543,11 +1543,12 @@ class vmmConnection(vmmGObject):
vector.append(0)
return vector
+ def stats_memory_vector(self):
+ return self._vector_helper("memoryPercent")
+
def host_cpu_time_vector(self):
return self._vector_helper("cpuHostPercent")
guest_cpu_time_vector = host_cpu_time_vector
- def stats_memory_vector(self):
- return self._vector_helper("memoryPercent")
def host_cpu_time_vector_limit(self, limit):
cpudata = self.host_cpu_time_vector()
@@ -1555,11 +1556,10 @@ class vmmConnection(vmmGObject):
cpudata = cpudata[0:limit]
return cpudata
guest_cpu_time_vector_limit = host_cpu_time_vector_limit
- def disk_io_vector_limit(self, dummy):
- # No point to accumulate unnormalized I/O for a conenction
+
+ def disk_io_vector_limit(self, ignore):
return [0.0]
- def network_traffic_vector_limit(self, dummy):
- # No point to accumulate unnormalized Rx/Tx for a connection
+ def network_traffic_vector_limit(self, ignore):
return [0.0]
def _get_record_helper(self, record_name):
diff --git a/virtManager/console.py b/virtManager/console.py
index 27014a42..6cc9fce8 100644
--- a/virtManager/console.py
+++ b/virtManager/console.py
@@ -171,7 +171,7 @@ class Tunnel(object):
os.dup(fds[1].fileno())
os.dup(errorfds[1].fileno())
os.execlp(*argv)
- os._exit(1)
+ os._exit(1) # pylint: disable=W0212
else:
fds[1].close()
errorfds[1].close()
@@ -1128,8 +1128,6 @@ class vmmConsolePages(vmmGObjectUI):
msg = (_("Cannot display graphical console type '%s'")
% ginfo.gtype)
- if ginfo.gtype == "spice":
- msg += ":\n %s" % self.config.get_spice_error()
self.activate_unavailable_page(msg)
return
diff --git a/virtManager/create.py b/virtManager/create.py
index 25506fe0..3d89c773 100644
--- a/virtManager/create.py
+++ b/virtManager/create.py
@@ -566,7 +566,7 @@ class vmmCreate(vmmGObjectUI):
# CPU
phys_cpus = self.conn.host_active_processor_count()
- max_v = self.conn.get_max_vcpus(_type=self.capsdomain.hypervisor_type)
+ max_v = self.conn.get_max_vcpus(self.capsdomain.hypervisor_type)
cmax = phys_cpus
if int(max_v) < int(phys_cpus):
cmax = max_v
@@ -830,7 +830,7 @@ class vmmCreate(vmmGObjectUI):
conn=self.conn.vmm,
caps=self.caps,
os_type=gtype,
- type=dtype,
+ typ=dtype,
accelerated=True,
arch=arch)
diff --git a/virtManager/createnet.py b/virtManager/createnet.py
index 486761f8..7f61448a 100644
--- a/virtManager/createnet.py
+++ b/virtManager/createnet.py
@@ -168,6 +168,8 @@ class vmmCreateNetwork(vmmGObjectUI):
notebook.prev_page()
def change_ipv4_enable(self, src):
+ ignore = src
+
white = Gdk.Color.parse("#f0f0f0")[1]
net4 = self.widget("net-ipv4-network")
start4 = self.widget("net-dhcpv4-start")
@@ -191,6 +193,8 @@ class vmmCreateNetwork(vmmGObjectUI):
end4.modify_bg(Gtk.StateType.NORMAL, white)
def change_ipv6_enable(self, src):
+ ignore = src
+
white = Gdk.Color.parse("#f0f0f0")[1]
net6 = self.widget("net-ipv6-network")
start6 = self.widget("net-dhcpv6-start")
@@ -304,6 +308,8 @@ class vmmCreateNetwork(vmmGObjectUI):
def change_dhcpv4_enable(self, src):
+ ignore = src
+
white = Gdk.Color.parse("#f0f0f0")[1]
start4 = self.widget("net-dhcpv4-start")
end4 = self.widget("net-dhcpv4-end")
@@ -352,6 +358,8 @@ class vmmCreateNetwork(vmmGObjectUI):
src.modify_bg(Gtk.StateType.NORMAL, green)
def change_dhcpv6_enable(self, src):
+ ignore = src
+
white = Gdk.Color.parse("#f0f0f0")[1]
start6 = self.widget("net-dhcpv6-start")
end6 = self.widget("net-dhcpv6-end")
@@ -382,7 +390,7 @@ class vmmCreateNetwork(vmmGObjectUI):
end = self.get_config_dhcpv6_end()
self.change_dhcpv6(src, end)
- def change_dhcpv6(self,src,addr):
+ def change_dhcpv6(self, src, addr):
ip = self.get_config_ip6()
black = Gdk.Color.parse("#000000")[1]
src.modify_text(Gtk.StateType.NORMAL, black)
@@ -478,10 +486,10 @@ class vmmCreateNetwork(vmmGObjectUI):
def populate_summary(self):
self.widget("summary-name").set_text(self.get_config_name())
self.widget("summary-domain").set_text(self.get_config_domain_name())
- self.widget("summary-ip4-network").set_text("");
- self.widget("summary-ip4-gateway").set_text("");
- self.widget("summary-ip6-network").set_text("");
- self.widget("summary-ip6-gateway").set_text("");
+ self.widget("summary-ip4-network").set_text("")
+ self.widget("summary-ip4-gateway").set_text("")
+ self.widget("summary-ip6-network").set_text("")
+ self.widget("summary-ip6-gateway").set_text("")
ip = self.get_config_ip4()
if ip:
diff --git a/virtManager/error.py b/virtManager/error.py
index 4d3ed7c9..ca1a9568 100644
--- a/virtManager/error.py
+++ b/virtManager/error.py
@@ -45,6 +45,7 @@ def _launch_dialog(dialog, primary_text, secondary_text, title,
return res
+
class vmmErrorDialog(vmmGObject):
def __init__(self, parent=None):
vmmGObject.__init__(self)
@@ -175,6 +176,10 @@ class _errorDialog (Gtk.MessageDialog):
"""
Custom error dialog with optional check boxes or details drop down
"""
+ # pylint: disable=E1101
+ # pylint can't detect functions we inheirit from Gtk, ex:
+ # Instance of '_errorDialog' has no 'set_title' member
+
def __init__(self, *args, **kwargs):
Gtk.MessageDialog.__init__(self, *args, **kwargs)
self.set_title("")
diff --git a/virtManager/graphwidgets.py b/virtManager/graphwidgets.py
index dc6a5700..e8d64c04 100644
--- a/virtManager/graphwidgets.py
+++ b/virtManager/graphwidgets.py
@@ -20,6 +20,10 @@ from gi.repository import GObject
from gi.repository import Gtk
# pylint: enable=E0611
+# pylint: disable=E1101
+# pylint can't detect functions we inheirit from Gtk, ex:
+# Instance of 'Sparkline' has no 'get_style_context' member
+
def rect_print(name, rect):
# For debugging
@@ -260,6 +264,10 @@ class CellRendererSparkline(Gtk.CellRenderer):
name = self._sanitize_param_spec_name(param_spec.name)
setattr(self, name, value)
+ def set_property(self, *args, **kwargs):
+ # Make pylint happy
+ return Gtk.CellRenderer.set_property(self, *args, **kwargs)
+
class Sparkline(Gtk.DrawingArea):
__gproperties__ = {
@@ -392,3 +400,11 @@ class Sparkline(Gtk.DrawingArea):
def do_set_property(self, param_spec, value):
name = self._sanitize_param_spec_name(param_spec.name)
setattr(self, name, value)
+
+ # These make pylint happy
+ def set_property(self, *args, **kwargs):
+ return Gtk.DrawingArea.set_property(self, *args, **kwargs)
+ def show(self, *args, **kwargs):
+ return Gtk.DrawingArea.show(self, *args, **kwargs)
+ def destroy(self, *args, **kwargs):
+ return Gtk.DrawingArea.destroy(self, *args, **kwargs)
diff --git a/virtManager/inspection.py b/virtManager/inspection.py
index 67805c8d..35529f7b 100644
--- a/virtManager/inspection.py
+++ b/virtManager/inspection.py
@@ -22,7 +22,7 @@ from threading import Thread
import logging
import os
-from guestfs import GuestFS
+from guestfs import GuestFS # pylint: disable=F0401
from virtManager.baseclass import vmmGObject
from virtManager.domain import vmmInspectionData
diff --git a/virtManager/migrate.py b/virtManager/migrate.py
index 81681983..8e4b5b56 100644
--- a/virtManager/migrate.py
+++ b/virtManager/migrate.py
@@ -29,7 +29,6 @@ from gi.repository import Gtk
# pylint: enable=E0611
import libvirt
-import virtinst
from virtinst import uriutil
from virtManager import util
diff --git a/virtManager/network.py b/virtManager/network.py
index a28bdb6f..ee08496d 100644
--- a/virtManager/network.py
+++ b/virtManager/network.py
@@ -123,7 +123,7 @@ class vmmNetwork(vmmLibvirtObject):
routeVia = node.xpathEval('string(./@via)')
if routeVia:
routeAddr = node.xpathEval('string(./@address)')
- break;
+ break
if goodNode == None:
for node in nodes:
@@ -132,7 +132,7 @@ class vmmNetwork(vmmLibvirtObject):
tmp = node.xpathEval('string(./@via)')
if tmp:
continue
- goodNode = node;
+ goodNode = node
break
if goodNode:
@@ -187,7 +187,7 @@ class vmmNetwork(vmmLibvirtObject):
routeVia = node.xpathEval('string(./@via)')
if routeVia:
routeAddr = node.xpathEval('string(./@address)')
- break;
+ break
if goodNode == None:
for node in nodes:
@@ -196,7 +196,7 @@ class vmmNetwork(vmmLibvirtObject):
tmp = node.xpathEval('string(./@via)')
if tmp:
continue
- goodNode = node;
+ goodNode = node
break
if goodNode:
diff --git a/virtManager/systray.py b/virtManager/systray.py
index 2aad4166..1bf7557d 100644
--- a/virtManager/systray.py
+++ b/virtManager/systray.py
@@ -29,7 +29,7 @@ from virtManager.baseclass import vmmGObject
from virtManager.error import vmmErrorDialog
try:
- import appindicator
+ import appindicator # pylint: disable=F0401
except:
appindicator = None
diff --git a/virtManagerTui/addnetwork.py b/virtManagerTui/addnetwork.py
index 51df6608..8d934841 100644
--- a/virtManagerTui/addnetwork.py
+++ b/virtManagerTui/addnetwork.py
@@ -202,8 +202,9 @@ class AddNetworkConfigScreen(VmmTuiConfigScreen):
self.__end_address = Entry(15, self.__config.get_ipv4_end_address())
fields = []
fields.append(("Select the DHCP range", None))
- fields.append(("Start", self.__start_address.network))
- fields.append(("End", self.__end_address.network))
+ # XXX
+ #fields.append(("Start", self.__start_address.network))
+ #fields.append(("End", self.__end_address.network))
return [Label("Selecting The DHCP Range"),
self.create_grid_from_fields(fields),
Label("TIP: Unless you wish to reserve some addresses to allow static network"),
diff --git a/virtManagerTui/listnetworks.py b/virtManagerTui/listnetworks.py
index eb4e2153..bbf20d3a 100644
--- a/virtManagerTui/listnetworks.py
+++ b/virtManagerTui/listnetworks.py
@@ -18,11 +18,11 @@
from snack import Label
from virtManagerTui.networklistconfigscreen import NetworkListConfigScreen
-import ipaddr
LIST_PAGE = 1
DETAILS_PAGE = 2
+
class ListNetworksConfigScreen(NetworkListConfigScreen):
def __init__(self):
NetworkListConfigScreen.__init__(self, "List Networks")
@@ -47,7 +47,6 @@ class ListNetworksConfigScreen(NetworkListConfigScreen):
result = network.get_ipv4_network()
netaddr = result[0]
dhcp = result[1]
- route = result[2]
fields.append(("Basic details", None))
fields.append(("Name", network.get_name()))
diff --git a/virtManagerTui/networkconfig.py b/virtManagerTui/networkconfig.py
index 3ece1cd8..02505cc9 100644
--- a/virtManagerTui/networkconfig.py
+++ b/virtManagerTui/networkconfig.py
@@ -66,17 +66,16 @@ class NetworkConfig:
return "RESERVED"
return "OTHER"
-#FIXME ??
-#def is_public_ipv4_network(self):
-# if self.__ipv4_address.is_private
-# return False
-# if self.__ipv4_address.is_loopback
-# return False
-# if self.__ipv4_address.is_multicast
-# return False
-# if self.__ipv4_address.is_reserved
-# return False
-# return True
+ def is_public_ipv4_network(self):
+ if self.__ipv4_address.is_private:
+ return False
+ if self.__ipv4_address.is_loopback:
+ return False
+ if self.__ipv4_address.is_multicast:
+ return False
+ if self.__ipv4_address.is_reserved:
+ return False
+ return True
def set_ipv4_start_address(self, address):
self.__ipv4_start = address
diff --git a/virtconv/diskcfg.py b/virtconv/diskcfg.py
index e52e3234..48557e8e 100644
--- a/virtconv/diskcfg.py
+++ b/virtconv/diskcfg.py
@@ -117,12 +117,12 @@ def run_vdiskadm(args):
class disk(object):
"""Definition of an individual disk instance."""
- def __init__(self, path=None, format=DISK_FORMAT_NONE, bus="ide",
- type=DISK_TYPE_DISK):
+ def __init__(self, path=None, fmt=DISK_FORMAT_NONE, bus="ide",
+ typ=DISK_TYPE_DISK):
self.path = path
- self.format = format
+ self.format = fmt
self.bus = bus
- self.type = type
+ self.type = typ
self.clean = []
self.csum_dict = {}
diff --git a/virtconv/formats.py b/virtconv/formats.py
index 059696c6..2199b9ce 100644
--- a/virtconv/formats.py
+++ b/virtconv/formats.py
@@ -101,7 +101,7 @@ def output_formats():
"""
return [p.name for p in _parsers if p.can_export]
-def find_input(path, format=None):
+def find_input(path, fmt=None):
"""
Search for a configuration file automatically. If @format is given,
then only search using a matching format parser.
@@ -113,7 +113,7 @@ def find_input(path, format=None):
for p in _parsers:
if not p.can_identify:
continue
- if format and format != p.name:
+ if fmt and fmt != p.name:
continue
if os.path.isfile(path):
diff --git a/virtconv/netdevcfg.py b/virtconv/netdevcfg.py
index b0c5c0b7..a19415c0 100644
--- a/virtconv/netdevcfg.py
+++ b/virtconv/netdevcfg.py
@@ -26,7 +26,7 @@ NETDEV_TYPE_NETWORK = 3
class netdev(object):
"""Definition of an individual network device."""
- def __init__(self, mac="auto", type=NETDEV_TYPE_UNKNOWN,
+ def __init__(self, mac="auto", typ=NETDEV_TYPE_UNKNOWN,
source=None, driver=None):
"""
@mac: either a MAC address, or "auto"
@@ -35,6 +35,6 @@ class netdev(object):
@driver: device emulated for VM (e.g. vmxnet)
"""
self.mac = mac
- self.type = type
+ self.type = typ
self.source = source
self.driver = driver
diff --git a/virtconv/parsers/ovf.py b/virtconv/parsers/ovf.py
index 86ea9ca1..d00ba45d 100644
--- a/virtconv/parsers/ovf.py
+++ b/virtconv/parsers/ovf.py
@@ -29,38 +29,38 @@ import logging
# Mapping of ResourceType value to device type
# http://konkretcmpi.org/cim218/CIM_ResourceAllocationSettingData.html
-"""
- "Other" [1]
- "Computer System" [2]
- "Processor" [3]
- "Memory" [4]
- "IDE Controller" [5]
- "Parallel SCSI HBA" [6]
- "FC HBA" [7]
- "iSCSI HBA" [8]
- "IB HCA" [9]
- "Ethernet Adapter" [10]
- "Other Network Adapter" [11]
- "I/O Slot" [12]
- "I/O Device" [13]
- "Floppy Drive" [14]
- "CD Drive" [15]
- "DVD drive" [16]
- "Disk Drive" [17]
- "Tape Drive" [18]
- "Storage Extent" [19]
- "Other storage device" [20]
- "Serial port" [21]
- "Parallel port" [22]
- "USB Controller" [23]
- "Graphics controller" [24]
- "IEEE 1394 Controller" [25]
- "Partitionable Unit" [26]
- "Base Partitionable Unit" [27]
- "Power" [28]
- "Cooling Capacity" [29]
- "Ethernet Switch Port" [30]
-"""
+#
+# "Other" [1]
+# "Computer System" [2]
+# "Processor" [3]
+# "Memory" [4]
+# "IDE Controller" [5]
+# "Parallel SCSI HBA" [6]
+# "FC HBA" [7]
+# "iSCSI HBA" [8]
+# "IB HCA" [9]
+# "Ethernet Adapter" [10]
+# "Other Network Adapter" [11]
+# "I/O Slot" [12]
+# "I/O Device" [13]
+# "Floppy Drive" [14]
+# "CD Drive" [15]
+# "DVD drive" [16]
+# "Disk Drive" [17]
+# "Tape Drive" [18]
+# "Storage Extent" [19]
+# "Other storage device" [20]
+# "Serial port" [21]
+# "Parallel port" [22]
+# "USB Controller" [23]
+# "Graphics controller" [24]
+# "IEEE 1394 Controller" [25]
+# "Partitionable Unit" [26]
+# "Base Partitionable Unit" [27]
+# "Power" [28]
+# "Cooling Capacity" [29]
+# "Ethernet Switch Port" [30]
+
DEVICE_CPU = "3"
DEVICE_MEMORY = "4"
@@ -243,8 +243,8 @@ def _parse_hw_section(vm, nodes, file_refs, disk_section):
path = file_refs[ref]
- disk = diskcfg.disk(path=path, format=fmt, bus=bus,
- type=diskcfg.DISK_TYPE_DISK)
+ disk = diskcfg.disk(path=path, fmt=fmt, bus=bus,
+ typ=diskcfg.DISK_TYPE_DISK)
vm.disks[(bus, dev_num)] = disk
diff --git a/virtconv/parsers/virtimage.py b/virtconv/parsers/virtimage.py
index e594e886..47606d1e 100644
--- a/virtconv/parsers/virtimage.py
+++ b/virtconv/parsers/virtimage.py
@@ -257,7 +257,7 @@ class virtimage_parser(formats.parser):
devid = (bus, nr_disk)
vm.disks[devid] = diskcfg.disk(bus=bus,
- type=diskcfg.DISK_TYPE_DISK)
+ typ=diskcfg.DISK_TYPE_DISK)
vm.disks[devid].format = fmt
vm.disks[devid].path = disk.file
nr_disk = nr_disk + 1
@@ -265,10 +265,10 @@ class virtimage_parser(formats.parser):
nics = domain.interface
nic_idx = 0
while nic_idx in range(0, nics):
+ # XXX Eventually need to add support for mac addresses if given
vm.netdevs[nic_idx] = netdevcfg.netdev(
- type=netdevcfg.NETDEV_TYPE_UNKNOWN)
+ typ=netdevcfg.NETDEV_TYPE_UNKNOWN)
nic_idx = nic_idx + 1
- """ Eventually need to add support for mac addresses if given"""
vm.validate()
return vm
diff --git a/virtconv/parsers/vmx.py b/virtconv/parsers/vmx.py
index ff43ceb5..5f6c9373 100644
--- a/virtconv/parsers/vmx.py
+++ b/virtconv/parsers/vmx.py
@@ -195,7 +195,7 @@ def parse_netdev_entry(vm, fullkey, value):
return
if not vm.netdevs.get(inst):
- vm.netdevs[inst] = netdevcfg.netdev(type=netdevcfg.NETDEV_TYPE_UNKNOWN)
+ vm.netdevs[inst] = netdevcfg.netdev(typ=netdevcfg.NETDEV_TYPE_UNKNOWN)
# "vlance", "vmxnet", "e1000"
if key == "virtualdev":
@@ -235,7 +235,7 @@ def parse_disk_entry(vm, fullkey, value):
devid = (bus, inst)
if not vm.disks.get(devid):
vm.disks[devid] = diskcfg.disk(bus=bus,
- type=diskcfg.DISK_TYPE_DISK)
+ typ=diskcfg.DISK_TYPE_DISK)
disk = vm.disks[devid]
if key == "devicetype":
diff --git a/virtinst/CapabilitiesParser.py b/virtinst/CapabilitiesParser.py
index f345c3dd..264db44c 100644
--- a/virtinst/CapabilitiesParser.py
+++ b/virtinst/CapabilitiesParser.py
@@ -614,7 +614,7 @@ class Capabilities(object):
return True
return False
- def guestForOSType(self, type=None, arch=None):
+ def guestForOSType(self, typ=None, arch=None):
if self.host is None:
return None
@@ -625,7 +625,7 @@ class Capabilities(object):
for a in archs:
for g in self.guests:
- if (type is None or g.os_type == type) and \
+ if (typ is None or g.os_type == typ) and \
(a is None or g.arch == a):
return g
@@ -681,7 +681,7 @@ def parse(xml):
Capabilities,
CapabilitiesParserException)
-def guest_lookup(conn, caps=None, os_type=None, arch=None, type=None,
+def guest_lookup(conn, caps=None, os_type=None, arch=None, typ=None,
accelerated=False, machine=None):
"""
Simple virtualization availability lookup
@@ -691,8 +691,8 @@ def guest_lookup(conn, caps=None, os_type=None, arch=None, type=None,
we return the default virt type associated with those values. These are
typically:
- - os_type : hvm, then xen
- - type : kvm over plain qemu
+ - os_type : hvm, then xen
+ - typ : kvm over plain qemu
- arch : host arch over all others
Otherwise the default will be the first listed in the capabilities xml.
@@ -703,8 +703,8 @@ def guest_lookup(conn, caps=None, os_type=None, arch=None, type=None,
@type conn: libvirt.virConnect
@param caps: Optional L{Capabilities} instance (saves a lookup)
@type caps: L{Capabilities}
- @param type: Virtualization type ('hvm', 'xen', ...)
- @type type: C{str}
+ @param typ: Virtualization type ('hvm', 'xen', ...)
+ @type typ: C{str}
@param arch: Guest architecture ('x86_64', 'i686' ...)
@type arch: C{str}
@param os_type: Hypervisor name ('qemu', 'kvm', 'xen', ...)
@@ -721,7 +721,7 @@ def guest_lookup(conn, caps=None, os_type=None, arch=None, type=None,
if not caps:
caps = parse(conn.getCapabilities())
- guest = caps.guestForOSType(type=os_type, arch=arch)
+ guest = caps.guestForOSType(os_type, arch)
if not guest:
archstr = _("for arch '%s'") % arch
if not arch:
@@ -735,7 +735,7 @@ def guest_lookup(conn, caps=None, os_type=None, arch=None, type=None,
{'virttype' : osstr, 'arch' : archstr})
domain = guest.bestDomainType(accelerated=accelerated,
- dtype=type,
+ dtype=typ,
machine=machine)
if domain == None:
@@ -745,7 +745,7 @@ def guest_lookup(conn, caps=None, os_type=None, arch=None, type=None,
raise ValueError(_("Host does not support domain type %(domain)s"
"%(machine)s for virtualization type "
"'%(virttype)s' arch '%(arch)s'") %
- {'domain': type, 'virttype': guest.os_type,
+ {'domain': typ, 'virttype': guest.os_type,
'arch': guest.arch, 'machine': machinestr})
return (guest, domain)
diff --git a/virtinst/CloneManager.py b/virtinst/CloneManager.py
index 34cb32d7..87f3f6e1 100644
--- a/virtinst/CloneManager.py
+++ b/virtinst/CloneManager.py
@@ -455,8 +455,8 @@ class CloneDesign(object):
else:
while 1:
mac = util.randomMAC(self.original_conn.getType().lower(),
- conn=self.original_conn)
- dummy, msg = self._check_mac(mac)
+ conn=self.original_conn)
+ ignore, msg = self._check_mac(mac)
if msg is not None:
continue
else:
diff --git a/virtinst/DistroInstaller.py b/virtinst/DistroInstaller.py
index 81a783dd..f02fb220 100644
--- a/virtinst/DistroInstaller.py
+++ b/virtinst/DistroInstaller.py
@@ -262,9 +262,11 @@ class DistroInstaller(Installer.Installer):
transient = not self.livecd
if not self._location_is_path:
# Xen needs a boot.iso if its a http://, ftp://, or nfs: url
- (store_ignore, os_type_ignore, os_variant_ignore, media) = \
- OSDistro.acquireBootDisk(guest, self.location, meter,
- self.scratchdir)
+ (store_ignore, os_type_ignore,
+ os_variant_ignore, media) = OSDistro.getBootDisk(guest,
+ self.location,
+ meter,
+ self.scratchdir)
cdrom = media
self._tmpfiles.append(cdrom)
@@ -381,7 +383,7 @@ class DistroInstaller(Installer.Installer):
# Need to fetch the kernel & initrd from a remote site, or
# out of a loopback mounted disk image/device
- ignore, os_type, os_variant, media = OSDistro.acquireKernel(guest,
+ ignore, os_type, os_variant, media = OSDistro.getKernel(guest,
self.location, meter,
self.scratchdir,
self.os_type)
diff --git a/virtinst/DomainNumatune.py b/virtinst/DomainNumatune.py
index 69cd6f65..06da59b7 100644
--- a/virtinst/DomainNumatune.py
+++ b/virtinst/DomainNumatune.py
@@ -19,7 +19,6 @@
import re
-from virtinst import util
from virtinst import XMLBuilderDomain
from virtinst.XMLBuilderDomain import _xml_property
diff --git a/virtinst/FullVirtGuest.py b/virtinst/FullVirtGuest.py
index cbe312fa..6f2bfa87 100644
--- a/virtinst/FullVirtGuest.py
+++ b/virtinst/FullVirtGuest.py
@@ -41,7 +41,6 @@ class FullVirtGuest(Guest):
return None
return self.installer.loader
def _set_loader(self, val):
- print val
if not self.installer:
return
self.installer.loader = val
diff --git a/virtinst/Guest.py b/virtinst/Guest.py
index 87c1ffa7..f72765b0 100644
--- a/virtinst/Guest.py
+++ b/virtinst/Guest.py
@@ -80,7 +80,7 @@ class Guest(XMLBuilderDomain.XMLBuilderDomain):
return vals
@staticmethod
- def list_os_variants(type, sortpref=None, supported=False, filtervars=None):
+ def list_os_variants(typ, sortpref=None, supported=False, filtervars=None):
"""
Return a list of sorted os variants for the passed distro type
@@ -89,7 +89,7 @@ class Guest(XMLBuilderDomain.XMLBuilderDomain):
the sorted list have all fedora distros first
@param filtervars: List of only variants we want to show by default
"""
- vals = osdict.sort_helper(Guest._OS_TYPES[type]["variants"],
+ vals = osdict.sort_helper(Guest._OS_TYPES[typ]["variants"],
sortpref)
ret = []
for v in vals:
@@ -98,19 +98,19 @@ class Guest(XMLBuilderDomain.XMLBuilderDomain):
continue
elif supported:
if not osdict.lookup_osdict_key(None, None,
- type, v, "supported"):
+ typ, v, "supported"):
continue
ret.append(v)
return ret
@staticmethod
- def get_os_type_label(type):
- return Guest._OS_TYPES[type]["label"]
+ def get_os_type_label(typ):
+ return Guest._OS_TYPES[typ]["label"]
@staticmethod
- def get_os_variant_label(type, variant):
- return Guest._OS_TYPES[type]["variants"][variant]["label"]
+ def get_os_variant_label(typ, variant):
+ return Guest._OS_TYPES[typ]["variants"][variant]["label"]
@staticmethod
def cpuset_str_to_tuple(conn, cpuset):
@@ -176,7 +176,7 @@ class Guest(XMLBuilderDomain.XMLBuilderDomain):
# Set up the connection, since it is fundamental for other init
conn = conn or connection
if conn == None:
- logging.debug("No conn passed to Guest, opening URI '%s'" %
+ logging.debug("No conn passed to Guest, opening URI '%s'",
hypervisorURI)
conn = self._open_uri(hypervisorURI)
@@ -1581,12 +1581,12 @@ class Guest(XMLBuilderDomain.XMLBuilderDomain):
device type and param (bus, model, etc.)
"""
try:
- support._set_rhel6(self._is_rhel6())
+ support.set_rhel6(self._is_rhel6())
return osdict.lookup_device_param(self.conn, self.type,
self.os_type, self.os_variant,
device_key, param)
finally:
- support._set_rhel6(False)
+ support.set_rhel6(False)
def _wait_for_domain(conn, name):
diff --git a/virtinst/Installer.py b/virtinst/Installer.py
index 77f9a19e..c235b67c 100644
--- a/virtinst/Installer.py
+++ b/virtinst/Installer.py
@@ -507,7 +507,7 @@ class Installer(XMLBuilderDomain.XMLBuilderDomain):
guest, domain = CapabilitiesParser.guest_lookup(conn=self.conn,
caps=self._get_caps(),
os_type=self.os_type,
- type=self.type,
+ typ=self.type,
arch=self.arch,
machine=self.machine)
diff --git a/virtinst/OSDistro.py b/virtinst/OSDistro.py
index 98aa6650..cb0b9a57 100644
--- a/virtinst/OSDistro.py
+++ b/virtinst/OSDistro.py
@@ -151,16 +151,16 @@ def _acquireMedia(iskernel, guest, baseuri, progresscb,
None, media_cb)
# Helper method to lookup install media distro and fetch an install kernel
-def acquireKernel(guest, baseuri, progresscb, scratchdir, type=None):
+def getKernel(guest, baseuri, progresscb, scratchdir, typ):
iskernel = True
return _acquireMedia(iskernel, guest, baseuri, progresscb,
- scratchdir, type)
+ scratchdir, typ)
# Helper method to lookup install media distro and fetch a boot iso
-def acquireBootDisk(guest, baseuri, progresscb, scratchdir, type=None):
+def getBootDisk(guest, baseuri, progresscb, scratchdir):
iskernel = False
return _acquireMedia(iskernel, guest, baseuri, progresscb,
- scratchdir, type)
+ scratchdir)
def _check_ostype_valid(os_type):
return bool(os_type in osdict.sort_helper(osdict.OS_TYPES))
@@ -279,6 +279,8 @@ class Distro:
initrdpath)
def acquireBootDisk(self, guest, fetcher, progresscb):
+ ignore = guest
+
if self._hasTreeinfo(fetcher, progresscb):
return fetcher.acquireFile(self._getTreeinfoMedia("boot.iso"),
progresscb)
@@ -811,7 +813,7 @@ class SuseDistro(Distro):
# Build a list of all .ko files
modpaths = {}
- for root, dummy, files in os.walk(cpiodir + "/kernel/lib/modules", topdown=False):
+ for root, ignore, files in os.walk(cpiodir + "/kernel/lib/modules", topdown=False):
for name in files:
if name.endswith(".ko"):
modpaths[name] = os.path.join(root, name)
diff --git a/virtinst/Storage.py b/virtinst/Storage.py
index f309e99b..f121c3be 100644
--- a/virtinst/Storage.py
+++ b/virtinst/Storage.py
@@ -236,7 +236,7 @@ class StoragePool(StorageObject):
Base class for building and installing libvirt storage pool xml
"""
- """@group Types: TYPE_*"""
+ # @group Types: TYPE_*
TYPE_DIR = "dir"
TYPE_FS = "fs"
TYPE_NETFS = "netfs"
@@ -399,7 +399,7 @@ class StoragePool(StorageObject):
raise ValueError(_("Host name must be a string"))
self._host = val
- """uuid: uuid of the storage object. optional: generated if not set"""
+ # uuid: uuid of the storage object. optional: generated if not set
def get_uuid(self):
return self._uuid
def set_uuid(self, val):
@@ -945,9 +945,10 @@ class MultipathPool(StoragePool):
def _get_source_xml(self):
return ""
-"""
-Storage Volume classes
-"""
+
+##########################
+# Storage Volume classes #
+##########################
class StorageVolume(StorageObject):
"""
diff --git a/virtinst/User.py b/virtinst/User.py
index 8d882d3b..ae5b02ed 100644
--- a/virtinst/User.py
+++ b/virtinst/User.py
@@ -68,7 +68,7 @@ class User(object):
if self._euid != User.current().euid:
return self._euid == 0
- import ucred
+ import ucred # pylint: disable=F0401
cred = ucred.get(os.getpid())
if priv in [ self.PRIV_CLONE,
self.PRIV_CREATE_DOMAIN,
diff --git a/virtinst/VirtualCharDevice.py b/virtinst/VirtualCharDevice.py
index 3e9042b9..98a17b53 100644
--- a/virtinst/VirtualCharDevice.py
+++ b/virtinst/VirtualCharDevice.py
@@ -395,7 +395,7 @@ class VirtualCharDevice(VirtualDevice):
return xml
def _char_xml(self):
- raise NotImplementedError("Must be implemented in subclass.")
+ pass
def _get_target_xml(self):
xml = ""
diff --git a/virtinst/VirtualGraphics.py b/virtinst/VirtualGraphics.py
index 4bbfa8aa..90cea94e 100644
--- a/virtinst/VirtualGraphics.py
+++ b/virtinst/VirtualGraphics.py
@@ -26,6 +26,7 @@ from virtinst import support
from virtinst.XMLBuilderDomain import _xml_property
def _get_mode_prop(channel_type):
+ # pylint: disable=W0212
xpath = "./channel[@name='%s']/@mode" % channel_type
def get_mode(s):
return s._channels.get(channel_type, None)
diff --git a/virtinst/VirtualNetworkInterface.py b/virtinst/VirtualNetworkInterface.py
index 6346eb71..d830f68b 100644
--- a/virtinst/VirtualNetworkInterface.py
+++ b/virtinst/VirtualNetworkInterface.py
@@ -145,8 +145,7 @@ class VirtualNetworkInterface(VirtualDevice):
def __init__(self, macaddr=None, type=TYPE_BRIDGE, bridge=None,
network=None, model=None, conn=None,
parsexml=None, parsexmlnode=None, caps=None):
- VirtualDevice.__init__(self, conn, parsexml,
- parsexmlnode, caps)
+ VirtualDevice.__init__(self, conn, parsexml, parsexmlnode, caps)
self._network = None
self._bridge = None
@@ -192,7 +191,7 @@ class VirtualNetworkInterface(VirtualDevice):
found = False
for ignore in range(256):
self._random_mac = util.randomMAC(self.conn.getType().lower(),
- conn=self.conn)
+ conn=self.conn)
ret = self.is_conflict_net(self.conn, self._random_mac)
if ret[1] is not None:
continue
diff --git a/virtinst/XMLBuilderDomain.py b/virtinst/XMLBuilderDomain.py
index 1f080cd4..17407de5 100644
--- a/virtinst/XMLBuilderDomain.py
+++ b/virtinst/XMLBuilderDomain.py
@@ -283,6 +283,11 @@ def _xml_property(fget=None, fset=None, fdel=None, doc=None,
@param default_converter: If the virtinst value is "default", use
this function to get the actual XML value
"""
+
+ # pylint: disable=W0212
+ # Accessing _xml vals of self. This should be a class method, but
+ # we break it out to be more readable
+
def new_getter(self, *args, **kwargs):
val = None
getval = fget(self, *args, **kwargs)
diff --git a/virtinst/cli.py b/virtinst/cli.py
index 51080094..a75bc77b 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -19,18 +19,16 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301 USA.
-import os
-import sys
+import itertools
+import locale
import logging
import logging.handlers
-import gettext
-import locale
-import re
-import difflib
-import tempfile
import optparse
+import os
+import re
import shlex
-import itertools
+import sys
+import tempfile
import libvirt
@@ -91,12 +89,14 @@ class VirtOptionParser(optparse.OptionParser):
def _get_encoding(self, f):
encoding = getattr(f, "encoding", None)
if not encoding:
- (dummy, encoding) = locale.getlocale()
+ encoding = locale.getlocale()[1]
if not encoding:
encoding = "UTF-8"
return encoding
def print_help(self, file=None):
+ # pylint: disable=W0622
+ # Redefining built in type 'file'
if file is None:
file = sys.stdout
@@ -206,11 +206,11 @@ def setupLogging(appname, debug=False, do_quiet=False):
libvirt.registerErrorHandler(f=libvirt_callback, ctx=None)
# Register python error handler to log exceptions
- def exception_log(type, val, tb):
+ def exception_log(typ, val, tb):
import traceback
- s = traceback.format_exception(type, val, tb)
+ s = traceback.format_exception(typ, val, tb)
logging.exception("".join(s))
- sys.__excepthook__(type, val, tb)
+ sys.__excepthook__(typ, val, tb)
sys.excepthook = exception_log
# Log the app command string
@@ -239,6 +239,8 @@ def _open_test_uri(uri):
conn = open_connection(uri)
def sanitize_xml(xml):
+ import difflib
+
orig = xml
xml = re.sub("arch='.*'", "arch='i686'", xml)
xml = re.sub("domain type='.*'", "domain type='test'", xml)
diff --git a/virtinst/osdict.py b/virtinst/osdict.py
index 57f0b9bd..849c2997 100644
--- a/virtinst/osdict.py
+++ b/virtinst/osdict.py
@@ -24,10 +24,8 @@ from virtinst.VirtualDevice import VirtualDevice
HV_ALL = "all"
-"""
-Default values for OS_TYPES keys. Can be overwritten at os_type or
-variant level
-"""
+# Default values for OS_TYPES keys. Can be overwritten at os_type or
+# variant level
NET = VirtualDevice.VIRTUAL_DEV_NET
DISK = VirtualDevice.VIRTUAL_DEV_DISK
diff --git a/virtinst/support.py b/virtinst/support.py
index 1fabcfdc..dfe4bae8 100644
--- a/virtinst/support.py
+++ b/virtinst/support.py
@@ -69,43 +69,42 @@ SUPPORT_CONN_HV_FILESYSTEM = 5007
# Flags for check_stream_support
SUPPORT_STREAM_UPLOAD = 6000
-"""
-Possible keys:
-
- - "version" : Minimum libvirt version required for this feature. Not used
- if 'args' provided
-
- - "force_version" : Demand that version check is met for the checked
- libvirt version. Normally we will make a best effort
- attempt, because determining the daemon version depends
- on a fairly new API call getLibVersion. So for things like
- testing API availability (e.g. createXMLFrom) we won't
- force the check, but for things like XML options (AC97)
- we want to be ABSOLUTELY SURE it is supported so we
- don't enable it by default and break guest creation.
- This isn't required for versions after >= 0.7.3
-
- - "function" : Function name to check exists. If object not specified,
- function is checked against libvirt module.
-
- - "args": Argument tuple to actually test object.function with.
-
- - "flag": A flag to check exists. This will be appended to the argument
- list if args are provided, otherwise we will only check against
- the local libvirt version.
-
- - "drv_version" : A list of tuples of the form
- (driver name (e.g qemu, xen, lxc), minimum supported version)
- If a hypervisor is not listed, it is assumed to be NOT
- SUPPORTED.
-
- - "drv_libvirt_version" : List of tuples, similar to drv_version, but
- the version number is minimum supported _libvirt_
- version
- - "hv_version" : A list of tuples of the same form as drv_version, however
- listing the actual <domain type='%s'/> from the XML.
- example: 'kvm'
-"""
+# Possible keys:
+#
+# "version" : Minimum libvirt version required for this feature. Not used
+# if 'args' provided
+#
+# "force_version" : Demand that version check is met for the checked
+# libvirt version. Normally we will make a best effort
+# attempt, because determining the daemon version depends
+# on a fairly new API call getLibVersion. So for things like
+# testing API availability (e.g. createXMLFrom) we won't
+# force the check, but for things like XML options (AC97)
+# we want to be ABSOLUTELY SURE it is supported so we
+# don't enable it by default and break guest creation.
+# This isn't required for versions after >= 0.7.3
+#
+# "function" : Function name to check exists. If object not specified,
+# function is checked against libvirt module.
+#
+# "args": Argument tuple to actually test object.function with.
+#
+# "flag": A flag to check exists. This will be appended to the argument
+# list if args are provided, otherwise we will only check against
+# the local libvirt version.
+#
+# "drv_version" : A list of tuples of the form
+# (driver name (e.g qemu, xen, lxc), minimum supported version)
+# If a hypervisor is not listed, it is assumed to be NOT
+# SUPPORTED.
+#
+# "drv_libvirt_version" : List of tuples, similar to drv_version, but
+# the version number is minimum supported _libvirt_
+# version
+# "hv_version" : A list of tuples of the same form as drv_version, however
+# listing the actual <domain type='%s'/> from the XML.
+# example: 'kvm'
+
_support_dict = {
SUPPORT_CONN_STORAGE : {
@@ -282,17 +281,17 @@ _support_dict = {
# really offer any XML feature introspection, we have to use hacks to
# make sure we aren't generating bogus config on non RHEL
_rhel6 = False
-def _set_rhel6(val):
+def set_rhel6(val):
global _rhel6
_rhel6 = bool(val)
-def _get_rhel6():
+def get_rhel6():
return _rhel6
# Pull a connection object from the passed libvirt object
def _get_conn_from_object(obj):
if not hasattr(obj, "_conn"):
return obj
- return obj._conn
+ return getattr(obj, "_conn")
# Check that command is present in the python bindings, and return the
# the requested function
@@ -424,7 +423,7 @@ def _check_support(conn, feature, data=None):
uri = conn.getURI()
drv_type = uriutil.get_uri_driver(uri)
- is_rhel6 = _get_rhel6()
+ is_rhel6 = get_rhel6()
force_version = get_value("force_version") or False
minimum_libvirt_version = get_value("version") or 0
diff --git a/virtinst/util.py b/virtinst/util.py
index cb04d6ab..bc4626b6 100644
--- a/virtinst/util.py
+++ b/virtinst/util.py
@@ -505,7 +505,7 @@ def is_blktap_capable():
# available under the LGPL,
# Copyright 2004, 2005 Mike Wray <mike.wray@hp.com>
# Copyright 2005 XenSource Ltd
-def randomMAC(type="xen", conn=None):
+def randomMAC(typ, conn=None):
"""Generate a random MAC address.
00-16-3E allocated to xensource
@@ -534,7 +534,7 @@ def randomMAC(type="xen", conn=None):
ouis = { 'xen': [ 0x00, 0x16, 0x3E ], 'qemu': [ 0x52, 0x54, 0x00 ] }
try:
- oui = ouis[type]
+ oui = ouis[typ]
except KeyError:
oui = ouis['xen']
@@ -551,8 +551,7 @@ def randomMAC(type="xen", conn=None):
# Copyright 2005 XenSource Ltd
def randomUUID():
"""Generate a random UUID."""
-
- return [ random.randint(0, 255) for dummy in range(0, 16) ]
+ return [random.randint(0, 255) for ignore in range(0, 16)]
def uuidToString(u, conn=None):
if conn and hasattr(conn, "_virtinst__fake_conn_predictable"):
@@ -563,29 +562,31 @@ def uuidToString(u, conn=None):
"%02x" * 6]) % tuple(u)
-def get_max_vcpus(conn, type=None):
+def get_max_vcpus(conn, typ):
"""@param conn: libvirt connection to poll for max possible vcpus
@type type: optional guest type (kvm, etc.)"""
- if type is None:
- type = conn.getType()
+ if typ is None:
+ typ = conn.getType()
try:
- m = conn.getMaxVcpus(type.lower())
+ m = conn.getMaxVcpus(typ.lower())
except libvirt.libvirtError:
m = 32
return m
-def xml_escape(str):
- """Replaces chars ' " < > & with xml safe counterparts"""
- if str is None:
+def xml_escape(xml):
+ """
+ Replaces chars ' " < > & with xml safe counterparts
+ """
+ if xml is None:
return None
- str = str.replace("&", "&amp;")
- str = str.replace("'", "&apos;")
- str = str.replace("\"", "&quot;")
- str = str.replace("<", "&lt;")
- str = str.replace(">", "&gt;")
- return str
+ xml = xml.replace("&", "&amp;")
+ xml = xml.replace("'", "&apos;")
+ xml = xml.replace("\"", "&quot;")
+ xml = xml.replace("<", "&lt;")
+ xml = xml.replace(">", "&gt;")
+ return xml
def _xorg_keymap():