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

Sys::Virt::NodeDevice::CREATE_XML_VALIDATE

Validate the XML document against schema

NODE DEVICE DEFINE

Sys::Virt::NodeDevice::DEFINE_XML_VALIDATE

Validate the XML document against schema

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