NAME
Sys::Virt::NodeDevice - Represent & manage a libvirt storage pool
DESCRIPTION
The Sys::Virt::NodeDevice
module represents a storage pool managed by libvirt. There are a variety of storage pool implementations for LVM, Local directories/filesystems, network filesystems, disk partitioning, iSCSI, and SCSI.
METHODS
- my $name = $dev->get_name()
-
Returns a string with a locally unique name of the device
- my $parentname = $dev->get_parent()
-
Returns a string with a locally unique name of the parent of the device, or undef if there is no parent
- my $xml = $dev->get_xml_description($flags=0)
-
Returns an XML document containing a complete description of the node device's configuration. The optional $flags parameter controls generation of the XML document, defaulting to 0 if omitted. It can be one or more of the XML DUMP constants listed later in this document.
- $dev->reattach()
-
Rebind the node device to the host OS device drivers.
- $dev->dettach()
-
Unbind the node device from the host OS device driver
- $dev->reset()
-
Reset the node device. The device must be unbound from the host OS drivers for this to work
- $dev->create($flags=0)
-
Start a node device whose configuration was previously defined using the
define_node_device
method in Sys::Virt. The$flags
parameter is currently unused and defaults to zero. - $dev->undefine($flags=0)
-
Delete a node device whose configuration was previously defined using the
define_node_device
method in Sys::Virt. The$flags
parameter is currently unused and defaults to zero. - $flag = $dev->get_autostart();
-
Return a true value if the node device is configured to automatically start upon boot. Return false, otherwise
- $dev->set_autostart($flag)
-
Set the state of the autostart flag, which determines whether the node device will automatically start upon boot of the host OS.
- $dev->is_active()
-
Returns a true value if the node device is currently running
- $dev->is_persistent()
-
Returns a true value if the node device has a persistent configuration file defined
- $dev->destroy()
-
Destroy the virtual device releasing any OS resources associated with it.
- my @caps = $dev->list_capabilities()
-
Return a list of all capabilities in the device.
- $dev->update($xml, $flags=0)
-
Update the definition of an existing node device with
$xml
. The$flags
parameter can be use to control which config is affected (see XML UPDATE FLAGS) and defaults to zero (affect current state of the node device).
CONSTANTS
This section documents constants that are used with various APIs described above
LIST FILTERING
The following constants are used to filter object lists
- Sys::Virt::NodeDevice::LIST_CAP_NET
-
Include devices with the network capability
- Sys::Virt::NodeDevice::LIST_CAP_PCI_DEV
-
Include devices with the PCI device capability
- Sys::Virt::NodeDevice::LIST_CAP_SCSI
-
Include devices with the SCSI capability
- Sys::Virt::NodeDevice::LIST_CAP_SCSI_HOST
-
Include devices with the SCSI host capability
- Sys::Virt::NodeDevice::LIST_CAP_SCSI_TARGET
-
Include devices with the SCSI target capability
- Sys::Virt::NodeDevice::LIST_CAP_STORAGE
-
Include devices with the storage capability
- Sys::Virt::NodeDevice::LIST_CAP_SYSTEM
-
Include devices with the system capability
- Sys::Virt::NodeDevice::LIST_CAP_USB_DEV
-
Include devices with the USB device capability
- Sys::Virt::NodeDevice::LIST_CAP_USB_INTERFACE
-
Include devices with the USB interface capability
- Sys::Virt::NodeDevice::LIST_CAP_FC_HOST
-
Include devices with the fibre channel host capability
- Sys::Virt::NodeDevice::LIST_CAP_VPORTS
-
Include devices with the NPIV vport capability
- Sys::Virt::NodeDevice::LIST_CAP_SCSI_GENERIC
-
Include devices with the SCSI generic capability
- Sys::Virt::NodeDevice::LIST_CAP_DRM
-
Include devices with the DRM capability
- Sys::Virt::NodeDevice::LIST_CAP_MDEV
-
Include mediated devices
- Sys::Virt::NodeDevice::LIST_CAP_MDEV_TYPES
-
Include devices capable of mediated devices
- Sys::Virt::NodeDevice::LIST_CAP_CCW_DEV
-
Include CCW devices
- Sys::Virt::NodeDevice::LIST_CAP_CSS_DEV
-
Include CSS devices
- Sys::Virt::NodeDevice::LIST_CAP_VDPA
-
Include VDPA devices
- Sys::Virt::NodeDevice::LIST_CAP_AP_CARD
-
Include s390 AP card devices
- Sys::Virt::NodeDevice::LIST_CAP_AP_MATRIX
-
Include s390 AP matrix devices
- Sys::Virt::NodeDevice::LIST_CAP_AP_QUEUE
-
Include s390 AP queue devices
- Sys::Virt::NodeDevice::LIST_CAP_VPD
-
Include PCI devices with VPD
- Sys::Virt::NodeDevice::LIST_ACTIVE
-
Include active devices
- Sys::Virt::NodeDevice::LIST_INACTIVE
-
Include inactive devices
- Sys::Virt::NodeDevice::LIST_PERSISTENT
-
Include persistent devices
- Sys::Virt::NodeDevice::LIST_TRANSIENT
-
Include transient devices
EVENT ID CONSTANTS
- Sys::Virt::NodeDevice::EVENT_ID_LIFECYCLE
-
Node device lifecycle events
- Sys::Virt::NodeDevice::EVENT_ID_UPDATE
-
Node device config update events
LIFECYCLE CHANGE EVENTS
The following constants allow node device lifecycle change events to be interpreted. The events contain both a state change, and a reason though the reason is currently unused.
- Sys::Virt::NodeDevice::EVENT_CREATED
-
Indicates that a device was created
- Sys::Virt::NodeDevice::EVENT_DELETED
-
Indicates that a device has been deleted
- Sys::Virt::NodeDevice::EVENT_DEFINED
-
Indicates that a device configuration has been created
- Sys::Virt::NodeDevice::EVENT_UNDEFINED
-
Indicates that a device configuration has been deleted
NODE DEVICE CREATION
NODE DEVICE DEFINE
NODE DEVICE UPDATE
- Sys::Virt::NodeDevice::UPDATE_AFFECT_CURRENT
-
Affect live if node device is active, config if it's not active
- Sys::Virt::NodeDevice::UPDATE_AFFECT_LIVE
-
Affect live state of node device only
- Sys::Virt::NodeDevice::UPDATE_AFFECT_CONFIG
-
Affect persistent config only
XML DUMP OPTIONS
The following constants are used to control the information included in the XML configuration dump
- Sys::Virt::NodeDevice::XML_INACTIVE
-
Report the persistent inactive configuration for the node device.
AUTHORS
Daniel P. Berrange <berrange@redhat.com>
COPYRIGHT
Copyright (C) 2006-2009 Red Hat Copyright (C) 2006-2009 Daniel P. Berrange
LICENSE
This program is free software; you can redistribute it and/or modify it under the terms of either the GNU General Public License as published by the Free Software Foundation (either version 2 of the License, or at your option any later version), or, the Artistic License, as specified in the Perl README file.
SEE ALSO
Sys::Virt, Sys::Virt::Error, http://libvirt.org