aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Scherer <misc@mageia.org>2011-03-29 22:47:59 +0000
committerMichael Scherer <misc@mageia.org>2011-03-29 22:47:59 +0000
commit5d5a3a39efe043dd49897f087528d6e03e5893e5 (patch)
tree9fac44a96292a034e8e418e10e75dbaad13865fc
parent008e72818c517857b16da51871bca3b85510831c (diff)
downloadpuppet-5d5a3a39efe043dd49897f087528d6e03e5893e5.tar
puppet-5d5a3a39efe043dd49897f087528d6e03e5893e5.tar.gz
puppet-5d5a3a39efe043dd49897f087528d6e03e5893e5.tar.bz2
puppet-5d5a3a39efe043dd49897f087528d6e03e5893e5.tar.xz
puppet-5d5a3a39efe043dd49897f087528d6e03e5893e5.zip
add a type to be able to manage storage directory for libvirtd
-rw-r--r--modules/libvirtd/files/storage_add.py28
-rw-r--r--modules/libvirtd/manifests/init.pp33
2 files changed, 61 insertions, 0 deletions
diff --git a/modules/libvirtd/files/storage_add.py b/modules/libvirtd/files/storage_add.py
new file mode 100644
index 00000000..88475ec6
--- /dev/null
+++ b/modules/libvirtd/files/storage_add.py
@@ -0,0 +1,28 @@
+#!/usr/bin/python
+import libvirt
+import sys
+
+name = sys.argv[1]
+path = sys.argv[2]
+
+storage_xml = """
+<pool type='dir'>
+ <name>%s</name>
+ <capacity>0</capacity>
+ <allocation>0</allocation>
+ <available>0</available>
+ <source>
+ </source>
+ <target>
+ <path>%s</path>
+ <permissions>
+ <mode>0700</mode>
+ <owner>-1</owner>
+ <group>-1</group>
+ </permissions>
+ </target>
+</pool>""" % ( name, path )
+
+c=libvirt.open("qemu:///system")
+c.storagePoolCreateXML(storage_xml,0)
+
diff --git a/modules/libvirtd/manifests/init.pp b/modules/libvirtd/manifests/init.pp
index da04bbfa..193099c9 100644
--- a/modules/libvirtd/manifests/init.pp
+++ b/modules/libvirtd/manifests/init.pp
@@ -11,6 +11,23 @@ class libvirtd {
ensure => running,
path => "/etc/init.d/libvirtd",
}
+
+ #TODO remove once libvirt package is fixed to manage the directory
+ file { "/etc/libvirt/storage":
+ ensure => directory,
+ }
+
+ file { "/etc/libvirt/storage/autostart":
+ ensure => directory,
+ }
+
+ file { "/usr/local/bin/storage_add.py":
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => 755,
+ source => "puppet:///libvirtd/storage_add.py",
+ }
}
class kvm inherits base {
@@ -33,4 +50,20 @@ class libvirtd {
content => template("libvirtd/50-template-libvirt-remote-access.pkla"),
}
}
+
+ define storage($path, $autostart = true) {
+ include libvirtd::base
+
+ exec { "/usr/local/bin/storage_add.py $name $path":
+ creates => "/etc/libvirt/storage/$name.xml",
+ require => File['/usr/local/bin/storage_add.py'],
+ }
+
+ file { "/etc/libvirt/storage/autostart/$name.xml":
+ ensure => $autostart ? {
+ true => "/etc/libvirt/storage/$name.xml",
+ false => "absent"
+ }
+ }
+ }
}