mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-10-27 01:55:20 +03:00
virtinst: Drop doc= for properties
This data never gets to the user and largely is just duplicating libvirt docs. It's redundant
This commit is contained in:
parent
e70eb82db1
commit
3079426c82
@ -104,7 +104,7 @@ class TestClone(unittest.TestCase):
|
|||||||
utils.diff_compare(cloneobj.clone_xml, outfile)
|
utils.diff_compare(cloneobj.clone_xml, outfile)
|
||||||
if clone_disks_file:
|
if clone_disks_file:
|
||||||
xml_clone_disks = ""
|
xml_clone_disks = ""
|
||||||
for i in cloneobj.get_clone_disks():
|
for i in cloneobj.clone_disks:
|
||||||
xml_clone_disks += i.get_vol_install().get_xml_config()
|
xml_clone_disks += i.get_vol_install().get_xml_config()
|
||||||
utils.diff_compare(xml_clone_disks, clone_disks_file)
|
utils.diff_compare(xml_clone_disks, clone_disks_file)
|
||||||
|
|
||||||
|
@ -77,16 +77,19 @@ class Cloner(object):
|
|||||||
self.clone_uuid = util.generate_uuid(conn)
|
self.clone_uuid = util.generate_uuid(conn)
|
||||||
|
|
||||||
|
|
||||||
# Getter/Setter methods
|
##############
|
||||||
|
# Properties #
|
||||||
|
##############
|
||||||
|
|
||||||
|
# Original guest name
|
||||||
def get_original_guest(self):
|
def get_original_guest(self):
|
||||||
return self._original_guest
|
return self._original_guest
|
||||||
def set_original_guest(self, original_guest):
|
def set_original_guest(self, original_guest):
|
||||||
if self._lookup_vm(original_guest):
|
if self._lookup_vm(original_guest):
|
||||||
self._original_guest = original_guest
|
self._original_guest = original_guest
|
||||||
original_guest = property(get_original_guest, set_original_guest,
|
original_guest = property(get_original_guest, set_original_guest)
|
||||||
doc="Original guest name.")
|
|
||||||
|
|
||||||
|
# XML of the original guest
|
||||||
def set_original_xml(self, val):
|
def set_original_xml(self, val):
|
||||||
if not isinstance(val, str):
|
if not isinstance(val, str):
|
||||||
raise ValueError(_("Original xml must be a string."))
|
raise ValueError(_("Original xml must be a string."))
|
||||||
@ -95,9 +98,9 @@ class Cloner(object):
|
|||||||
parsexml=self._original_xml).name
|
parsexml=self._original_xml).name
|
||||||
def get_original_xml(self):
|
def get_original_xml(self):
|
||||||
return self._original_xml
|
return self._original_xml
|
||||||
original_xml = property(get_original_xml, set_original_xml,
|
original_xml = property(get_original_xml, set_original_xml)
|
||||||
doc="XML of the original guest.")
|
|
||||||
|
|
||||||
|
# Name to use for the new guest clone
|
||||||
def get_clone_name(self):
|
def get_clone_name(self):
|
||||||
return self._clone_name
|
return self._clone_name
|
||||||
def set_clone_name(self, name):
|
def set_clone_name(self, name):
|
||||||
@ -109,16 +112,16 @@ class Cloner(object):
|
|||||||
raise ValueError(_("Invalid name for new guest: %s") % e)
|
raise ValueError(_("Invalid name for new guest: %s") % e)
|
||||||
|
|
||||||
self._clone_name = name
|
self._clone_name = name
|
||||||
clone_name = property(get_clone_name, set_clone_name,
|
clone_name = property(get_clone_name, set_clone_name)
|
||||||
doc="Name to use for the new guest clone.")
|
|
||||||
|
|
||||||
|
# UUID to use for the new guest clone
|
||||||
def set_clone_uuid(self, uuid):
|
def set_clone_uuid(self, uuid):
|
||||||
self._clone_uuid = uuid
|
self._clone_uuid = uuid
|
||||||
def get_clone_uuid(self):
|
def get_clone_uuid(self):
|
||||||
return self._clone_uuid
|
return self._clone_uuid
|
||||||
clone_uuid = property(get_clone_uuid, set_clone_uuid,
|
clone_uuid = property(get_clone_uuid, set_clone_uuid)
|
||||||
doc="UUID to use for the new guest clone")
|
|
||||||
|
|
||||||
|
# Paths to use for the new disk locations
|
||||||
def set_clone_paths(self, paths):
|
def set_clone_paths(self, paths):
|
||||||
disklist = []
|
disklist = []
|
||||||
for path in util.listify(paths):
|
for path in util.listify(paths):
|
||||||
@ -147,15 +150,14 @@ class Cloner(object):
|
|||||||
self._clone_disks = disklist
|
self._clone_disks = disklist
|
||||||
def get_clone_paths(self):
|
def get_clone_paths(self):
|
||||||
return [d.path for d in self.clone_disks]
|
return [d.path for d in self.clone_disks]
|
||||||
clone_paths = property(get_clone_paths, set_clone_paths,
|
clone_paths = property(get_clone_paths, set_clone_paths)
|
||||||
doc="Paths to use for the new disk locations.")
|
|
||||||
|
|
||||||
def get_clone_disks(self):
|
# VirtualDisk instances for the new disk paths
|
||||||
|
@property
|
||||||
|
def clone_disks(self):
|
||||||
return self._clone_disks
|
return self._clone_disks
|
||||||
clone_disks = property(get_clone_disks,
|
|
||||||
doc="VirtualDisk instances for the new"
|
|
||||||
" disk paths")
|
|
||||||
|
|
||||||
|
# MAC address for the new guest clone
|
||||||
def set_clone_macs(self, mac):
|
def set_clone_macs(self, mac):
|
||||||
maclist = util.listify(mac)
|
maclist = util.listify(mac)
|
||||||
for m in maclist:
|
for m in maclist:
|
||||||
@ -166,45 +168,43 @@ class Cloner(object):
|
|||||||
self._clone_macs = maclist
|
self._clone_macs = maclist
|
||||||
def get_clone_macs(self):
|
def get_clone_macs(self):
|
||||||
return self._clone_macs
|
return self._clone_macs
|
||||||
clone_macs = property(get_clone_macs, set_clone_macs,
|
clone_macs = property(get_clone_macs, set_clone_macs)
|
||||||
doc="MAC address for the new guest clone.")
|
|
||||||
|
|
||||||
def get_original_disks(self):
|
# VirtualDisk instances of the original disks being cloned
|
||||||
|
@property
|
||||||
|
def original_disks(self):
|
||||||
return self._original_disks
|
return self._original_disks
|
||||||
original_disks = property(get_original_disks,
|
|
||||||
doc="VirtualDisk instances of the "
|
|
||||||
"original disks being cloned.")
|
|
||||||
|
|
||||||
|
# Generated XML for the guest clone
|
||||||
def get_clone_xml(self):
|
def get_clone_xml(self):
|
||||||
return self._clone_xml
|
return self._clone_xml
|
||||||
def set_clone_xml(self, clone_xml):
|
def set_clone_xml(self, clone_xml):
|
||||||
self._clone_xml = clone_xml
|
self._clone_xml = clone_xml
|
||||||
clone_xml = property(get_clone_xml, set_clone_xml,
|
clone_xml = property(get_clone_xml, set_clone_xml)
|
||||||
doc="Generated XML for the guest clone.")
|
|
||||||
|
|
||||||
|
# Whether to attempt sparse allocation during cloning
|
||||||
def get_clone_sparse(self):
|
def get_clone_sparse(self):
|
||||||
return self._clone_sparse
|
return self._clone_sparse
|
||||||
def set_clone_sparse(self, flg):
|
def set_clone_sparse(self, flg):
|
||||||
self._clone_sparse = flg
|
self._clone_sparse = flg
|
||||||
clone_sparse = property(get_clone_sparse, set_clone_sparse,
|
clone_sparse = property(get_clone_sparse, set_clone_sparse)
|
||||||
doc="Whether to attempt sparse allocation during "
|
|
||||||
"cloning.")
|
|
||||||
|
|
||||||
|
# If true, preserve ALL original disk devices
|
||||||
def get_preserve(self):
|
def get_preserve(self):
|
||||||
return self._preserve
|
return self._preserve
|
||||||
def set_preserve(self, flg):
|
def set_preserve(self, flg):
|
||||||
self._preserve = flg
|
self._preserve = flg
|
||||||
preserve = property(get_preserve, set_preserve,
|
preserve = property(get_preserve, set_preserve)
|
||||||
doc="If true, preserve ALL original disk devices.")
|
|
||||||
|
|
||||||
def get_preserve_dest_disks(self):
|
# If true, preserve ALL disk devices for the NEW guest.
|
||||||
|
# This means no storage cloning.
|
||||||
|
# This is a convenience access for not Cloner.preserve
|
||||||
|
@property
|
||||||
|
def preserve_dest_disks(self):
|
||||||
return not self.preserve
|
return not self.preserve
|
||||||
preserve_dest_disks = property(get_preserve_dest_disks,
|
|
||||||
doc="If true, preserve ALL disk devices for the "
|
|
||||||
"NEW guest. This means no storage cloning. "
|
|
||||||
"This is a convenience access for "
|
|
||||||
"(not Cloner.preserve)")
|
|
||||||
|
|
||||||
|
# List of disk targets that we force cloning despite
|
||||||
|
# Cloner's recommendation
|
||||||
def set_force_target(self, dev):
|
def set_force_target(self, dev):
|
||||||
if isinstance(dev, list):
|
if isinstance(dev, list):
|
||||||
self._force_target = dev[:]
|
self._force_target = dev[:]
|
||||||
@ -212,10 +212,10 @@ class Cloner(object):
|
|||||||
self._force_target.append(dev)
|
self._force_target.append(dev)
|
||||||
def get_force_target(self):
|
def get_force_target(self):
|
||||||
return self._force_target
|
return self._force_target
|
||||||
force_target = property(get_force_target, set_force_target,
|
force_target = property(get_force_target, set_force_target)
|
||||||
doc="List of disk targets that we force cloning "
|
|
||||||
"despite Cloner's recommendation.")
|
|
||||||
|
|
||||||
|
# List of disk targets that we skip cloning despite Cloner's
|
||||||
|
# recommendation. This takes precedence over force_target.")
|
||||||
def set_skip_target(self, dev):
|
def set_skip_target(self, dev):
|
||||||
if isinstance(dev, list):
|
if isinstance(dev, list):
|
||||||
self._skip_target = dev[:]
|
self._skip_target = dev[:]
|
||||||
@ -223,45 +223,45 @@ class Cloner(object):
|
|||||||
self._skip_target.append(dev)
|
self._skip_target.append(dev)
|
||||||
def get_skip_target(self):
|
def get_skip_target(self):
|
||||||
return self._skip_target
|
return self._skip_target
|
||||||
skip_target = property(get_skip_target, set_skip_target,
|
skip_target = property(get_skip_target, set_skip_target)
|
||||||
doc="List of disk targets that we skip cloning "
|
|
||||||
"despite Cloner's recommendation. This "
|
|
||||||
"takes precedence over force_target.")
|
|
||||||
|
|
||||||
|
# List of policy rules for determining which vm disks to clone.
|
||||||
|
# See CLONE_POLICY_*
|
||||||
def set_clone_policy(self, policy_list):
|
def set_clone_policy(self, policy_list):
|
||||||
if not isinstance(policy_list, list):
|
if not isinstance(policy_list, list):
|
||||||
raise ValueError(_("Cloning policy must be a list of rules."))
|
raise ValueError(_("Cloning policy must be a list of rules."))
|
||||||
self._clone_policy = policy_list
|
self._clone_policy = policy_list
|
||||||
def get_clone_policy(self):
|
def get_clone_policy(self):
|
||||||
return self._clone_policy
|
return self._clone_policy
|
||||||
clone_policy = property(get_clone_policy, set_clone_policy,
|
clone_policy = property(get_clone_policy, set_clone_policy)
|
||||||
doc="List of policy rules for determining which "
|
|
||||||
"vm disks to clone. See CLONE_POLICY_*")
|
|
||||||
|
|
||||||
|
# Allow cloning a running VM. If enabled, domain state is not
|
||||||
|
# checked before cloning.
|
||||||
def get_clone_running(self):
|
def get_clone_running(self):
|
||||||
return self._clone_running
|
return self._clone_running
|
||||||
def set_clone_running(self, val):
|
def set_clone_running(self, val):
|
||||||
self._clone_running = bool(val)
|
self._clone_running = bool(val)
|
||||||
clone_running = property(get_clone_running, set_clone_running,
|
clone_running = property(get_clone_running, set_clone_running)
|
||||||
doc="Allow cloning a running VM. If enabled, "
|
|
||||||
"domain state is not checked before "
|
|
||||||
"cloning.")
|
|
||||||
|
|
||||||
|
# If enabled, don't check for clone name collision, simply undefine
|
||||||
|
# any conflicting guest.
|
||||||
def _get_replace(self):
|
def _get_replace(self):
|
||||||
return self._replace
|
return self._replace
|
||||||
def _set_replace(self, val):
|
def _set_replace(self, val):
|
||||||
self._replace = bool(val)
|
self._replace = bool(val)
|
||||||
replace = property(_get_replace, _set_replace,
|
replace = property(_get_replace, _set_replace)
|
||||||
doc="If enabled, don't check for clone name collision, "
|
|
||||||
"simply undefine any conflicting guest.")
|
# If true, use COW lightweight copy
|
||||||
def _get_reflink(self):
|
def _get_reflink(self):
|
||||||
return self._reflink
|
return self._reflink
|
||||||
def _set_reflink(self, reflink):
|
def _set_reflink(self, reflink):
|
||||||
self._reflink = reflink
|
self._reflink = reflink
|
||||||
reflink = property(_get_reflink, _set_reflink,
|
reflink = property(_get_reflink, _set_reflink)
|
||||||
doc="If true, use COW lightweight copy")
|
|
||||||
|
|
||||||
# Functional methods
|
|
||||||
|
######################
|
||||||
|
# Functional methods #
|
||||||
|
######################
|
||||||
|
|
||||||
def setup_original(self):
|
def setup_original(self):
|
||||||
"""
|
"""
|
||||||
|
@ -194,12 +194,9 @@ class _VirtualCharDevice(VirtualDevice):
|
|||||||
"_source_path", "source_channel",
|
"_source_path", "source_channel",
|
||||||
"target_type", "target_name"]
|
"target_type", "target_name"]
|
||||||
|
|
||||||
type = XMLProperty("./@type",
|
type = XMLProperty("./@type")
|
||||||
doc=_("Method used to expose character device in the host."))
|
|
||||||
|
|
||||||
_tty = XMLProperty("./@tty")
|
_tty = XMLProperty("./@tty")
|
||||||
_source_path = XMLProperty("./source/@path",
|
_source_path = XMLProperty("./source/@path")
|
||||||
doc=_("Host input path to attach to the guest."))
|
|
||||||
|
|
||||||
def _get_source_path(self):
|
def _get_source_path(self):
|
||||||
source = self._source_path
|
source = self._source_path
|
||||||
@ -210,8 +207,7 @@ class _VirtualCharDevice(VirtualDevice):
|
|||||||
self._source_path = val
|
self._source_path = val
|
||||||
source_path = property(_get_source_path, _set_source_path)
|
source_path = property(_get_source_path, _set_source_path)
|
||||||
|
|
||||||
source_channel = XMLProperty("./source/@channel",
|
source_channel = XMLProperty("./source/@channel")
|
||||||
doc=_("Source channel name."))
|
|
||||||
source_master = XMLProperty("./source/@master")
|
source_master = XMLProperty("./source/@master")
|
||||||
source_slave = XMLProperty("./source/@slave")
|
source_slave = XMLProperty("./source/@slave")
|
||||||
|
|
||||||
@ -231,10 +227,8 @@ class _VirtualCharDevice(VirtualDevice):
|
|||||||
self._has_mode_connect = self.MODE_CONNECT
|
self._has_mode_connect = self.MODE_CONNECT
|
||||||
return val
|
return val
|
||||||
source_host = XMLProperty("./source[@mode='connect']/@host",
|
source_host = XMLProperty("./source[@mode='connect']/@host",
|
||||||
doc=_("Host address to connect to."),
|
|
||||||
set_converter=_set_source_validate)
|
set_converter=_set_source_validate)
|
||||||
source_port = XMLProperty("./source[@mode='connect']/@service",
|
source_port = XMLProperty("./source[@mode='connect']/@service",
|
||||||
doc=_("Host port to connect to."),
|
|
||||||
set_converter=_set_source_validate,
|
set_converter=_set_source_validate,
|
||||||
is_int=True)
|
is_int=True)
|
||||||
|
|
||||||
@ -244,10 +238,8 @@ class _VirtualCharDevice(VirtualDevice):
|
|||||||
self._has_mode_bind = self.MODE_BIND
|
self._has_mode_bind = self.MODE_BIND
|
||||||
return val
|
return val
|
||||||
bind_host = XMLProperty("./source[@mode='bind']/@host",
|
bind_host = XMLProperty("./source[@mode='bind']/@host",
|
||||||
doc=_("Host address to bind to."),
|
|
||||||
set_converter=_set_bind_validate)
|
set_converter=_set_bind_validate)
|
||||||
bind_port = XMLProperty("./source[@mode='bind']/@service",
|
bind_port = XMLProperty("./source[@mode='bind']/@service",
|
||||||
doc=_("Host port to bind to."),
|
|
||||||
set_converter=_set_bind_validate,
|
set_converter=_set_bind_validate,
|
||||||
is_int=True)
|
is_int=True)
|
||||||
|
|
||||||
@ -261,7 +253,6 @@ class _VirtualCharDevice(VirtualDevice):
|
|||||||
return None
|
return None
|
||||||
return self.PROTOCOL_RAW
|
return self.PROTOCOL_RAW
|
||||||
protocol = XMLProperty("./protocol/@type",
|
protocol = XMLProperty("./protocol/@type",
|
||||||
doc=_("Format used when sending data."),
|
|
||||||
default_cb=_get_default_protocol)
|
default_cb=_get_default_protocol)
|
||||||
|
|
||||||
def _get_default_target_type(self):
|
def _get_default_target_type(self):
|
||||||
@ -269,21 +260,17 @@ class _VirtualCharDevice(VirtualDevice):
|
|||||||
return self.CHANNEL_TARGET_VIRTIO
|
return self.CHANNEL_TARGET_VIRTIO
|
||||||
return None
|
return None
|
||||||
target_type = XMLProperty("./target/@type",
|
target_type = XMLProperty("./target/@type",
|
||||||
doc=_("Channel type as exposed in the guest."),
|
|
||||||
default_cb=_get_default_target_type)
|
default_cb=_get_default_target_type)
|
||||||
|
|
||||||
target_address = XMLProperty("./target/@address",
|
target_address = XMLProperty("./target/@address")
|
||||||
doc=_("Guest forward channel address in the guest."))
|
|
||||||
|
|
||||||
target_port = XMLProperty("./target/@port", is_int=True,
|
target_port = XMLProperty("./target/@port", is_int=True)
|
||||||
doc=_("Guest forward channel port in the guest."))
|
|
||||||
|
|
||||||
def _default_target_name(self):
|
def _default_target_name(self):
|
||||||
if self.type == self.TYPE_SPICEVMC:
|
if self.type == self.TYPE_SPICEVMC:
|
||||||
return self.CHANNEL_NAME_SPICE
|
return self.CHANNEL_NAME_SPICE
|
||||||
return None
|
return None
|
||||||
target_name = XMLProperty("./target/@name",
|
target_name = XMLProperty("./target/@name",
|
||||||
doc=_("Sysfs name of virtio port in the guest"),
|
|
||||||
default_cb=_default_target_name)
|
default_cb=_default_target_name)
|
||||||
|
|
||||||
log_file = XMLProperty("./log/@file")
|
log_file = XMLProperty("./log/@file")
|
||||||
|
@ -55,11 +55,10 @@ class InterfaceProtocol(XMLBuilder):
|
|||||||
_XML_PROP_ORDER = ["autoconf", "dhcp", "dhcp_peerdns", "ips", "gateway"]
|
_XML_PROP_ORDER = ["autoconf", "dhcp", "dhcp_peerdns", "ips", "gateway"]
|
||||||
|
|
||||||
family = XMLProperty("./@family")
|
family = XMLProperty("./@family")
|
||||||
dhcp = XMLProperty("./dhcp", is_bool=True, doc=_("Whether to enable DHCP"))
|
dhcp = XMLProperty("./dhcp", is_bool=True)
|
||||||
dhcp_peerdns = XMLProperty("./dhcp/@peerdns", is_yesno=True)
|
dhcp_peerdns = XMLProperty("./dhcp/@peerdns", is_yesno=True)
|
||||||
gateway = XMLProperty("./route/@gateway", doc=_("Network gateway address"))
|
gateway = XMLProperty("./route/@gateway")
|
||||||
autoconf = XMLProperty("./autoconf", is_bool=True,
|
autoconf = XMLProperty("./autoconf", is_bool=True)
|
||||||
doc=_("Whether to enable IPv6 autoconfiguration"))
|
|
||||||
|
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
@ -173,64 +172,44 @@ class Interface(XMLBuilder):
|
|||||||
##################
|
##################
|
||||||
|
|
||||||
type = XMLProperty("./@type")
|
type = XMLProperty("./@type")
|
||||||
mtu = XMLProperty("./mtu/@size", is_int=True,
|
mtu = XMLProperty("./mtu/@size", is_int=True)
|
||||||
doc=_("Maximum transmit size in bytes"))
|
start_mode = XMLProperty("./start/@mode")
|
||||||
start_mode = XMLProperty("./start/@mode",
|
|
||||||
doc=_("When the interface will be auto-started."))
|
|
||||||
|
|
||||||
name = XMLProperty("./@name", validate_cb=_validate_name,
|
name = XMLProperty("./@name", validate_cb=_validate_name)
|
||||||
doc=_("Name for the interface object."))
|
|
||||||
|
|
||||||
macaddr = XMLProperty("./mac/@address", validate_cb=_validate_mac,
|
macaddr = XMLProperty("./mac/@address", validate_cb=_validate_mac)
|
||||||
doc=_("Interface MAC address"))
|
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
# Bridge params #
|
# Bridge params #
|
||||||
#################
|
#################
|
||||||
|
|
||||||
stp = XMLProperty("./bridge/@stp", is_onoff=True,
|
stp = XMLProperty("./bridge/@stp", is_onoff=True)
|
||||||
doc=_("Whether STP is enabled on the bridge"))
|
delay = XMLProperty("./bridge/@delay")
|
||||||
delay = XMLProperty("./bridge/@delay",
|
|
||||||
doc=_("Delay in seconds before forwarding begins when "
|
|
||||||
"joining a network."))
|
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Bond params #
|
# Bond params #
|
||||||
###############
|
###############
|
||||||
|
|
||||||
bond_mode = XMLProperty("./bond/@mode",
|
bond_mode = XMLProperty("./bond/@mode")
|
||||||
doc=_("Mode of operation of the bonding device"))
|
|
||||||
|
|
||||||
arp_interval = XMLProperty("./bond/arpmon/@interval", is_int=True,
|
arp_interval = XMLProperty("./bond/arpmon/@interval", is_int=True)
|
||||||
doc=_("ARP monitoring interval in "
|
arp_target = XMLProperty("./bond/arpmon/@target")
|
||||||
"milliseconds"))
|
arp_validate_mode = XMLProperty("./bond/arpmon/@validate")
|
||||||
arp_target = XMLProperty("./bond/arpmon/@target",
|
|
||||||
doc=_("IP target used in ARP monitoring packets"))
|
|
||||||
arp_validate_mode = XMLProperty("./bond/arpmon/@validate",
|
|
||||||
doc=_("ARP monitor validation mode"))
|
|
||||||
|
|
||||||
mii_carrier_mode = XMLProperty("./bond/miimon/@carrier",
|
mii_carrier_mode = XMLProperty("./bond/miimon/@carrier")
|
||||||
doc=_("MII monitoring method."))
|
mii_frequency = XMLProperty("./bond/miimon/@freq", is_int=True)
|
||||||
mii_frequency = XMLProperty("./bond/miimon/@freq", is_int=True,
|
mii_updelay = XMLProperty("./bond/miimon/@updelay", is_int=True)
|
||||||
doc=_("MII monitoring interval in "
|
mii_downdelay = XMLProperty("./bond/miimon/@downdelay", is_int=True)
|
||||||
"milliseconds"))
|
|
||||||
mii_updelay = XMLProperty("./bond/miimon/@updelay", is_int=True,
|
|
||||||
doc=_("Time in milliseconds to wait before "
|
|
||||||
"enabling a slave after link recovery "))
|
|
||||||
mii_downdelay = XMLProperty("./bond/miimon/@downdelay", is_int=True,
|
|
||||||
doc=_("Time in milliseconds to wait before "
|
|
||||||
"disabling a slave after link failure"))
|
|
||||||
|
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# VLAN params #
|
# VLAN params #
|
||||||
###############
|
###############
|
||||||
|
|
||||||
tag = XMLProperty("./vlan/@tag", is_int=True,
|
tag = XMLProperty("./vlan/@tag", is_int=True)
|
||||||
doc=_("VLAN device tag number"))
|
parent_interface = XMLProperty("./vlan/interface/@name")
|
||||||
parent_interface = XMLProperty("./vlan/interface/@name",
|
|
||||||
doc=_("Parent interface to create VLAN on"))
|
|
||||||
|
|
||||||
|
|
||||||
##################
|
##################
|
||||||
|
@ -69,8 +69,7 @@ class _StorageObject(XMLBuilder):
|
|||||||
# Properties #
|
# Properties #
|
||||||
##############
|
##############
|
||||||
|
|
||||||
name = XMLProperty("./name", validate_cb=_validate_name,
|
name = XMLProperty("./name", validate_cb=_validate_name)
|
||||||
doc=_("Name for the storage object."))
|
|
||||||
permissions = XMLChildProperty(_StoragePermissions,
|
permissions = XMLChildProperty(_StoragePermissions,
|
||||||
relative_xpath="./target",
|
relative_xpath="./target",
|
||||||
is_single=True)
|
is_single=True)
|
||||||
@ -397,8 +396,7 @@ class StoragePool(_StorageObject):
|
|||||||
_source_adapter = XMLProperty("./source/adapter/@name")
|
_source_adapter = XMLProperty("./source/adapter/@name")
|
||||||
_source_device = XMLProperty("./source/device/@path")
|
_source_device = XMLProperty("./source/device/@path")
|
||||||
|
|
||||||
type = XMLProperty("./@type",
|
type = XMLProperty("./@type")
|
||||||
doc=_("Storage device type the pool will represent."))
|
|
||||||
uuid = XMLProperty("./uuid")
|
uuid = XMLProperty("./uuid")
|
||||||
|
|
||||||
capacity = XMLProperty("./capacity", is_int=True)
|
capacity = XMLProperty("./capacity", is_int=True)
|
||||||
@ -407,11 +405,9 @@ class StoragePool(_StorageObject):
|
|||||||
|
|
||||||
format = XMLProperty("./source/format/@type",
|
format = XMLProperty("./source/format/@type",
|
||||||
default_cb=_default_format_cb)
|
default_cb=_default_format_cb)
|
||||||
iqn = XMLProperty("./source/initiator/iqn/@name",
|
iqn = XMLProperty("./source/initiator/iqn/@name")
|
||||||
doc=_("iSCSI initiator qualified name"))
|
|
||||||
source_name = XMLProperty("./source/name",
|
source_name = XMLProperty("./source/name",
|
||||||
default_cb=_default_source_name,
|
default_cb=_default_source_name)
|
||||||
doc=_("Name of the Volume Group"))
|
|
||||||
|
|
||||||
auth_type = XMLProperty("./source/auth/@type")
|
auth_type = XMLProperty("./source/auth/@type")
|
||||||
auth_username = XMLProperty("./source/auth/@username")
|
auth_username = XMLProperty("./source/auth/@username")
|
||||||
@ -628,9 +624,7 @@ class StorageVolume(_StorageObject):
|
|||||||
" not supported by this libvirt version."))
|
" not supported by this libvirt version."))
|
||||||
|
|
||||||
self._input_vol = vol
|
self._input_vol = vol
|
||||||
input_vol = property(_get_input_vol, _set_input_vol,
|
input_vol = property(_get_input_vol, _set_input_vol)
|
||||||
doc=_("virStorageVolume pointer to clone/use as "
|
|
||||||
"input."))
|
|
||||||
|
|
||||||
def _get_reflink(self):
|
def _get_reflink(self):
|
||||||
return self._reflink
|
return self._reflink
|
||||||
@ -641,8 +635,7 @@ class StorageVolume(_StorageObject):
|
|||||||
" not supported by this libvirt version."))
|
" not supported by this libvirt version."))
|
||||||
|
|
||||||
self._reflink = reflink
|
self._reflink = reflink
|
||||||
reflink = property(_get_reflink, _set_reflink,
|
reflink = property(_get_reflink, _set_reflink)
|
||||||
doc="flags for VIR_STORAGE_VOL_CREATE_REFLINK")
|
|
||||||
|
|
||||||
def sync_input_vol(self, only_format=False):
|
def sync_input_vol(self, only_format=False):
|
||||||
# Pull parameters from input vol into this class
|
# Pull parameters from input vol into this class
|
||||||
|
@ -160,7 +160,7 @@ class XMLChildProperty(property):
|
|||||||
|
|
||||||
|
|
||||||
class XMLProperty(property):
|
class XMLProperty(property):
|
||||||
def __init__(self, xpath, doc=None,
|
def __init__(self, xpath,
|
||||||
set_converter=None, validate_cb=None,
|
set_converter=None, validate_cb=None,
|
||||||
is_bool=False, is_int=False, is_yesno=False, is_onoff=False,
|
is_bool=False, is_int=False, is_yesno=False, is_onoff=False,
|
||||||
default_cb=None, default_name=None, do_abspath=False):
|
default_cb=None, default_name=None, do_abspath=False):
|
||||||
@ -176,7 +176,6 @@ class XMLProperty(property):
|
|||||||
existing guest XML, we use the xpath value to get/set the value
|
existing guest XML, we use the xpath value to get/set the value
|
||||||
in the parsed XML document.
|
in the parsed XML document.
|
||||||
|
|
||||||
:param doc: option doc string for the property
|
|
||||||
:param xpath: xpath string which maps to the associated property
|
:param xpath: xpath string which maps to the associated property
|
||||||
in a typical XML document
|
in a typical XML document
|
||||||
:param name: Just a string to print for debugging, only needed
|
:param name: Just a string to print for debugging, only needed
|
||||||
@ -229,7 +228,6 @@ class XMLProperty(property):
|
|||||||
_allprops.append(self)
|
_allprops.append(self)
|
||||||
|
|
||||||
property.__init__(self, fget=self.getter, fset=self.setter)
|
property.__init__(self, fget=self.getter, fset=self.setter)
|
||||||
self.__doc__ = doc
|
|
||||||
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user