Author: jfthomps
Date: Thu Apr 11 13:40:14 2013
New Revision: 1466886
URL: http://svn.apache.org/r1466886
Log:
attempted to update formatting
Modified:
vcl/site/trunk/content/confluence_export/libvirt-provisioning-module.mdtext
Modified:
vcl/site/trunk/content/confluence_export/libvirt-provisioning-module.mdtext
URL:
http://svn.apache.org/viewvc/vcl/site/trunk/content/confluence_export/libvirt-provisioning-module.mdtext?rev=1466886&r1=1466885&r2=1466886&view=diff
==============================================================================
--- vcl/site/trunk/content/confluence_export/libvirt-provisioning-module.mdtext
(original)
+++ vcl/site/trunk/content/confluence_export/libvirt-provisioning-module.mdtext
Thu Apr 11 13:40:14 2013
@@ -1,72 +1,61 @@
Title: Libvirt Provisioning Module
+
+**(this page is probably beyond repair and should be recreated - it would
probably
+be best to separate the manually created part from the auto generated part and
+just directly check in the manually created part as a plain html file instead
of
+a .mdtext file)**
+
+
[Libvirt ](http://libvirt.org/)
is an open source toolkit which can interact with KVM, Xen, and several
other virtualization architectures.
-<a name="LibvirtProvisioningModule-libvirt.pm"></a>
-### libvirt.pm
+### libvirt.pm {#libvirtpm}
* libvirt.pm is the main provisioning module
* Computers should have their provisioningID attributes set to point to
this module in order to utilize it
-* Implements the required provisioning module subroutines: *load, capture,
-node_status, power_status, power_on, power_off, power_reset...*
-* Implements the functions provided by libvirt: *define, start, destroy...*
+* Implements the required provisioning module subroutines: **load, capture,
+node_status, power_status, power_on, power_off, power_reset...**
+* Implements the functions provided by libvirt: **define, start, destroy...**
* Does not contain code specific to any of the hypervisors supported by
libvirt (KVM, Xen, etc)
-* File location: *lib/VCL/Module/Provisioning/Libvirt.pm*
+* File location: **lib/VCL/Module/Provisioning/Libvirt.pm**
* Automatically determines which hypervisor driver object to use upon
initialization by examining the host
-<a name="LibvirtProvisioningModule-HypervisorDriverModules"></a>
-### Hypervisor Driver Modules
+### Hypervisor Driver Modules {#hypervisordrivermodules}
Libvirt hypervisor drivers allow it to interact with and control various
-types of hypervisors. The drivers are listed at
[http://libvirt.org/drivers.html. ](http://libvirt.org/drivers.html. )
-; A hypervisor driver module must be written in order for VCL to support
-any of the hypervisors supported by libvirt. These driver modules
+types of hypervisors. The drivers are listed at
[http://libvirt.org/drivers.html](http://libvirt.org/drivers.html).
+A hypervisor driver module must be written in order for VCL to support
+any of the hypervisors supported by libvirt. These driver modules
only contain code specific to the driver in order to perform functions not
handled by libvirt.pm.
-* Hypervisor driver directory: *lib/VCL/Module/Provisioning/libvirt/*
+* Hypervisor driver directory: **lib/VCL/Module/Provisioning/libvirt/**
* Example: lib/VCL/Module/Provisioning/libvirt/KVM.pm
-** Contains code which only applies to KVM
-** Calls qemu-img to perform image file operations
+ * Contains code which only applies to KVM
+ * Calls qemu-img to perform image file operations
!Libvirt UML Diagram.gif!
-<a name="LibvirtProvisioningModule-*VirtualMachineDisks*"></a>
-#### *Virtual Machine Disks*
+#### Virtual Machine Disks {#virtualmachinedisks}
A master disk image is stored in the location specified by the datastore
-path in the VM host profile. A copy on write virtual disk image is
-created for each virtual machine when it is loaded. The master disk
+path in the VM host profile. A copy on write virtual disk image is
+created for each virtual machine when it is loaded. The master disk
image is used as a read-only backing file for the copy on write disk
-images. Each VM writes to its own copy on write disk image.
+images. Each VM writes to its own copy on write disk image.
Using copy on write virtual disks allows VMs to be loaded without having to
create a complete copy of the master disk image.
!Copy on Write.gif|width=367,height=448!
-{anchor:libvirt.pm}
-
-<a name="LibvirtProvisioningModule-{color:#0000ff}libvirt.pm{color}"></a>
-# {color:#0000ff}libvirt.pm{color}
-{html}<?xml version="1.0" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>VCL::Provisioning::libvirt - VCL provisioning module to support the
-libvirt toolkit</title>
-<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-<link rev="made" href="mailto:root@localhost" />
-</head>
-
-<body style="background-color: white">
+# libvirt.pm {#libvirtpm2}
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
@@ -147,8 +136,7 @@ libvirt toolkit</p>
<pre>
use VCL::Module::Provisioning::libvirt;
my $provisioner =
-(VCL::Module::Provisioning::libvirt)->new({data_structure =>
-$self->data});</pre>
+(VCL::Module::Provisioning::libvirt)->new({data_structure =>
$self->data});</pre>
<p>
</p>
<hr />
@@ -170,13 +158,10 @@ $self->data});</pre>
Description : Enumerates the libvirt driver modules directory:
lib/VCL/Module/Provisioning/libvirt/
- Attempts to create and initialize an object for each
-hypervisor
- driver module found in this directory. The first driver
-module
+ Attempts to create and initialize an object for each hypervisor
+ driver module found in this directory. The first driver module
object successfully initialized is used. This object is made
- accessible within this module via $self->driver. This
-allows
+ accessible within this module via $self->driver. This allows
libvirt support driver modules to be added without having to
alter the code in libvirt.pm.</pre>
<p>
@@ -237,8 +222,7 @@ implemented.</p>
<pre>
Parameters : $computer_id (optional)
Returns : string
- Description : Checks the status of the computer in order to determine if
-the
+ Description : Checks the status of the computer in order to determine if the
computer is ready to be reserved or needs to be reloaded. A
string is returned depending on the status of the computer:
'READY':
@@ -250,8 +234,7 @@ the
* Computer is loaded with the correct image
* OS module's post-load tasks have not run
'RELOAD':
- * Computer is not accessible or not loaded with the
-correct
+ * Computer is not accessible or not loaded with the correct
image</pre>
<p>
</p>
@@ -260,10 +243,8 @@ correct
Parameters : $image_name (optional)
Returns : array (boolean)
Description : Checks if the requested image exists on the node or in the
- repository. If the image exists, an array containing the
-image
- file paths is returned. A boolean evaluation can be done on
-the
+ repository. If the image exists, an array containing the image
+ file paths is returned. A boolean evaluation can be done on the
return value to simply determine if an image exists.</pre>
<p>
</p>
@@ -279,12 +260,9 @@ name="get_image_repository_search_paths"
<pre>
Parameters : $management_node_identifier (optional)
Returns : array
- Description : Returns an array containing paths on the management node
-where an
- image may reside. The paths may contain wildcards. This is
-used
- to attempt to locate an image on another managment node in
-order
+ Description : Returns an array containing paths on the management node where
an
+ image may reside. The paths may contain wildcards. This is used
+ to attempt to locate an image on another managment node in order
to retrieve it.</pre>
<p>
</p>
@@ -292,8 +270,7 @@ order
<pre>
Parameters : $domain_name (optional)
Returns : string
- Description : Determines the power state of the domain. A string is
-returned
+ Description : Determines the power state of the domain. A string is returned
containing one of the following values:
* 'on'
* 'off'
@@ -304,8 +281,7 @@ returned
<pre>
Parameters : $domain_name (optional)
Returns : boolean
- Description : Powers on the domain. Returns true if the domain was
-successfully
+ Description : Powers on the domain. Returns true if the domain was
successfully
powered on or was already powered on.</pre>
<p>
</p>
@@ -321,8 +297,7 @@ successfully
<pre>
Parameters : $domain_name (optional)
Returns : boolean
- Description : Resets the power of the domain by powering it off and then
-back
+ Description : Resets the power of the domain by powering it off and then back
on.</pre>
<p>
</p>
@@ -342,8 +317,7 @@ back
<pre>
Parameters : none
Returns : Libvirt driver object
- Description : Returns a reference to the libvirt driver object which is
-created
+ Description : Returns a reference to the libvirt driver object which is
created
when this libvirt.pm module is initialized.</pre>
<p>
</p>
@@ -351,8 +325,7 @@ created
<pre>
Parameters : none
Returns : string
- Description : Returns the name of the libvirt driver being used to control
-the
+ Description : Returns the name of the libvirt driver being used to control the
node. Example: 'KVM'</pre>
<p>
</p>
@@ -360,10 +333,8 @@ the
<pre>
Parameters : none
Returns : string
- Description : Returns the name of the domain. This name is passed to
-various
- virsh commands. It is also the name displayed in
-virt-manager.
+ Description : Returns the name of the domain. This name is passed to various
+ virsh commands. It is also the name displayed in virt-manager.
Example: 'vclv99-197:vmwarewin7-Windows764bit1846-v3'</pre>
<p>
</p>
@@ -372,10 +343,8 @@ virt-manager.
Parameters : none
Returns : string
Description : Returns the base name for files created for the current
- reservation. A file extension is not included. This file
-name is
- used for the domain's XML definition file and it's copy on
-write
+ reservation. A file extension is not included. This file name is
+ used for the domain's XML definition file and it's copy on write
image file. Example: 'vclv99-37_234-v23'</pre>
<p>
</p>
@@ -384,8 +353,7 @@ name="get_domain_xml_directory_path">get
<pre>
Parameters : none
Returns : string
- Description : Returns the directory path on the node where domain
-definition
+ Description : Returns the directory path on the node where domain definition
XML files reside. The directory used is: '/tmp/vcl'</pre>
<p>
</p>
@@ -402,8 +370,7 @@ name="get_master_image_directory_path">g
<pre>
Parameters : none
Returns : string
- Description : Returns the directory path on the node where the master
-image
+ Description : Returns the directory path on the node where the master image
files reside. Example: '/var/lib/libvirt/images'</pre>
<p>
</p>
@@ -412,11 +379,9 @@ name="get_master_image_file_path">get_ma
<pre>
Parameters : $image_name (optional)
Returns : string
- Description : Returns the path on the node where the master image file
-resides.
+ Description : Returns the path on the node where the master image file
resides.
Example:
-
-'/var/lib/libvirt/images/vmwarelinux-RHEL54Small2251-v1.qcow2'</pre>
+
'/var/lib/libvirt/images/vmwarelinux-RHEL54Small2251-v1.qcow2'</pre>
<p>
</p>
<h2><a
@@ -424,8 +389,7 @@ name="get_copy_on_write_file_path">get_c
<pre>
Parameters : none
Returns : string
- Description : Returns the path on the node where the copy on write file
-for the
+ Description : Returns the path on the node where the copy on write file for
the
domain resides. Example:
'/var/lib/libvirt/images/vclv99-197_2251-v1.qcow2'</pre>
<p>
@@ -434,8 +398,7 @@ for the
<pre>
Parameters : none
Returns : boolean
- Description : Deletes existing domains which were previously created for
-the
+ Description : Deletes existing domains which were previously created for the
computer assigned to the current reservation.</pre>
<p>
</p>
@@ -450,8 +413,7 @@ the
<pre>
Parameters : none
Returns : string
- Description : Generates a string containing the XML definition for the
-domain.
+ Description : Generates a string containing the XML definition for the domain.
</pre>
<p>
@@ -460,12 +422,9 @@ domain.
<pre>
Parameters : none
Returns : hash reference
- Description : Retrieves information about all of the domains defined on
-the
- node and constructs a hash containing the information.
-Example:
- "vclv99-197:vmwarewin7-Windows764bit1846-v3"
-=> {
+ Description : Retrieves information about all of the domains defined on the
+ node and constructs a hash containing the information. Example:
+ "vclv99-197:vmwarewin7-Windows764bit1846-v3" => {
"id" => 135,
"state" => "paused"
},
@@ -480,8 +439,7 @@ Example:
<pre>
Parameters : $domain_name
Returns : hash reference
- Description : Retrieves the XML definition of a domain already defined on
-the
+ Description : Retrieves the XML definition of a domain already defined on the
node. Generates a hash using XML::Simple::XMLin.
</pre>
@@ -500,14 +458,11 @@ the
<pre>
Parameters : $domain_name
Returns : hash reference
- Description : Retrieves snapshot information for the domain specified by
-the
- argument and constructs a hash. The hash keys are the
-snapshot
+ Description : Retrieves snapshot information for the domain specified by the
+ argument and constructs a hash. The hash keys are the snapshot
names. Example:
"VCL snapshot" => {
- "creation_time" => "2011-12-07
-16:05:50 -0500",
+ "creation_time" => "2011-12-07 16:05:50
-0500",
"state" => "shutoff"
}
@@ -548,52 +503,24 @@ name="find_repository_image_file_paths">
Parameters : $image_name (optional)
Returns : array
Description : Locates valid image files stored in the image repository.
- Searches for all files beginning with the image name and
-then
+ Searches for all files beginning with the image name and then
checks the results to remove any files which should not be
included. File extensions which are excluded: vmx, txt, xml
- If multiple vmdk files are found it is assumed that the
-image is
- one of the split vmdk formats and the <image
-name>.vmdk contains
+ If multiple vmdk files are found it is assumed that the image is
+ one of the split vmdk formats and the <image name>.vmdk
contains
the descriptor information. This file is excluded because it
causes qemu-img to fail.
</pre>
<p>
</p>
-<hr />
-<h1><a name="see_also">SEE ALSO</a></h1>
-<p><a href="http://cwiki.apache.org/VCL/">http://cwiki.apache.org/VCL/</a>
-
-</p>
-
-</body>
-
-</html>{html}
-
+<hr>
<a name="LibvirtProvisioningModule-"></a>
-##
-{anchor:KVM.pm}
-
-<a name="LibvirtProvisioningModule-{color:#0000ff}KVM.pm{color}"></a>
-# {color:#0000ff}KVM.pm{color}
-{html}
-<?xml version="1.0" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>KVM.pm</title>
-<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-<link rev="made" href="mailto:root@localhost" />
-</head>
+# KVM.pm {#kvmpm}
-<body style="background-color: white">
<p><a name="__index__"></a></p>
-<!-- INDEX BEGIN -->
<ul>
@@ -635,17 +562,14 @@ href="#update_windows_image">update_wind
</p>
<h1><a name="name">NAME</a></h1>
<p>VCL::Provisioning::libvirt::KVM - Libvirt hypervisor driver module to
-allow
-support for the KVM hypervisor</p>
+allow support for the KVM hypervisor</p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<pre>
- This is a driver module to allow the main libvirt.pm provisioning module
-to
- support KVM hosts. It performs the KVM-specific tasks not handled by
-libvirt
+ This is a driver module to allow the main libvirt.pm provisioning module to
+ support KVM hosts. It performs the KVM-specific tasks not handled by libvirt
itself.</pre>
<p>
</p>
@@ -657,44 +581,21 @@ libvirt
<pre>
Parameters : none
Returns : boolean
- Description : Checks if the node has KVM installed by checking if
-/usr/bin/qemu
- exists. Returns true if the file exists, false
-otherwise.</pre>
+ Description : Checks if the node has KVM installed by checking if
/usr/bin/qemu
+ exists. Returns true if the file exists, false otherwise.</pre>
<p>
</p>
<h2><a name="get_domain_type">get_domain_type</a></h2>
<pre>
Parameters : none
Returns : string
- Description : Returns 'kvm'. This is specified in the domain XML
-definition:
+ Description : Returns 'kvm'. This is specified in the domain XML definition:
<domain type='kvm'></pre>
-<pre>
-
-=cut</pre>
-<p><table cellspacing="0" cellpadding="0"><tr><td>sub get_domain_type {
-<tr><td><td>my $self = shift;
-<tr><td><td>unless (ref($self) &&
-$self-><code>isa('VCL::Module'))</code> {
-<tr><td><td>notify($ERRORS{'CRITICAL'}, 0, ``subroutine was called as a
-function, it must be called as a class method'');
-<tr><td><td>return;
-<tr><td><td>}
-</table></p>
-<pre>
-
- return 'kvm';
-}</pre>
-<p>#/////////////////////////////////////////////////////////////////////////////</p>
-<p>
-</p>
<h2><a name="get_disk_driver_name">get_disk_driver_name</a></h2>
<pre>
Parameters : none
Returns : string
- Description : Returns 'qemu'. The disk driver name is specified in the
-domain
+ Description : Returns 'qemu'. The disk driver name is specified in the domain
XML definition:
<domain ...>
<devices>
@@ -706,8 +607,7 @@ domain
<pre>
Parameters : none
Returns : string
- Description : Returns 'qcow2'. The disk format is specified in the domain
-XML
+ Description : Returns 'qcow2'. The disk format is specified in the domain XML
definition:
<domain ...>
<devices>
@@ -719,8 +619,7 @@ XML
<pre>
Parameters : none
Returns : string
- Description : Returns 'qcow2'. This is used by libvirt.pm as the file
-extension
+ Description : Returns 'qcow2'. This is used by libvirt.pm as the file
extension
of the virtual disk file paths.</pre>
<p>
</p>
@@ -729,13 +628,10 @@ extension
Parameters : none
Returns : boolean
Description : Performs the KVM-specific steps prior to defining a domain:
- * Checks if the master image file exists on the node, If it
-does
- not exist, attempts to copy image from repository to the
-node
- * Creates a copy on write image which will be used by the
-domain
- being loaded</pre>
+ * Checks if the master image file exists on the node, If it does
+ not exist, attempts to copy image from repository to the node
+ * Creates a copy on write image which will be used by the domain
+ being loaded</pre>
<p>
</p>
<hr />
@@ -747,33 +643,26 @@ name="get_virtual_disk_file_info">get_vi
<pre>
Parameters : $virtual_disk_file_path
Returns : hash reference
- Description : Calls 'qemu-img info' to retrieve the virtual disk
-information.
+ Description : Calls 'qemu-img info' to retrieve the virtual disk information.
Builds a hash based on the output. Example:
- "backing_file" =>
-"/var/lib/libvirt/images/vmwarewinxp-base234-v23.qcow2 (actual path:
-/var/lib/libvirt/images/vmwarewinxp-base234-v23.qcow2)",
- "backing_file_actual_path" =>
-"/var/lib/libvirt/images/vmwarewinxp-base234-v23.qcow2",
+ "backing_file" =>
"/var/lib/libvirt/images/vmwarewinxp-base234-v23.qcow2 (actual path:
+/var/lib/libvirt/images/vmwarewinxp-base234-v23.qcow2)",
+ "backing_file_actual_path" =>
"/var/lib/libvirt/images/vmwarewinxp-base234-v23.qcow2",
"cluster_size" => 65536,
"disk_size" => "423M",
"disk_size_bytes" => 443547648,
"file_format" => "qcow2",
- "image" =>
-"/var/lib/libvirt/images/vclv99-37_234-v23.qcow2",
+ "image" =>
"/var/lib/libvirt/images/vclv99-37_234-v23.qcow2",
"snapshot" => {
1 => {
- "date" => "2011-12-07
-14:43:12",
+ "date" => "2011-12-07 14:43:12",
"tag" => "snap1",
"vm_clock" => "00:00:00.000",
"vm_size" => 0
}
},
- "virtual_size" => "20G (21474836480
-bytes)",
- "virtual_size_bytes" =>
-"21474836480"</pre>
+ "virtual_size" => "20G (21474836480
bytes)",
+ "virtual_size_bytes" =>
"21474836480"</pre>
<p>
</p>
<h2><a
@@ -786,11 +675,9 @@ name="get_virtual_disk_size_bytes">get_v
</p>
<h2><a name="copy_virtual_disk">copy_virtual_disk</a></h2>
<pre>
- Parameters : $source_file_paths, $destination_file_path, $disk_format
-(optional)
+ Parameters : $source_file_paths, $destination_file_path, $disk_format
(optional)
Returns : boolean
- Description : Calls qemu-img to copy a virtual disk image. The destination
-disk
+ Description : Calls qemu-img to copy a virtual disk image. The destination
disk
format can be specified as an argument. If omitted, qcow2 is
used.</pre>
<p>
@@ -800,14 +687,10 @@ name="create_copy_on_write_image">create
<pre>
Parameters : $master_image_file_path, $copy_on_write_file_path
Returns : boolean
- Description : Calls qemu-img to create a copy on write virtual disk image
-based
- on the master image. The resulting image is written to by
-the VM
- when it makes changes to its hard disk. Multiple VMs may
-utilize
- the master image file. Each writes to its own copy on write
-image
+ Description : Calls qemu-img to create a copy on write virtual disk image
based
+ on the master image. The resulting image is written to by the VM
+ when it makes changes to its hard disk. Multiple VMs may utilize
+ the master image file. Each writes to its own copy on write image
file. The master image file is not altered.</pre>
<p>
</p>
@@ -815,30 +698,12 @@ image
<pre>
Parameters : $virtual_disk_file_path
Returns : boolean
- Description : Runs virt-win-reg to update the registry of the image
-specified
- by the $virtual_disk_file_path argument. The virt-win-reg
-utility
- is provided by libguestfs-tools. This subroutine returns
-true if
+ Description : Runs virt-win-reg to update the registry of the image specified
+ by the $virtual_disk_file_path argument. The virt-win-reg utility
+ is provided by libguestfs-tools. This subroutine returns true if
virt-win-reg isn't installed.
- Adds registry keys to disable VMware services. If the image
-is
- Windows 5.x, registry keys are added to enable the builtin
-IDE
- drivers. This allows Windows images converted from VMware
-using a
+ Adds registry keys to disable VMware services. If the image is
+ Windows 5.x, registry keys are added to enable the builtin IDE
+ drivers. This allows Windows images converted from VMware using a
SCSI virtual disk to be loaded on KVM.</pre>
-<p>
-</p>
-<hr />
-<h1><a name="see_also">SEE ALSO</a></h1>
-<p><a href="http://cwiki.apache.org/VCL/">http://cwiki.apache.org/VCL/</a>
-
-</p>
-
-</body>
-
-</html>
-{html}