try again, with puppetforge modules, correctly included now
[mirror/dsa-puppet.git] / 3rdparty / modules / cinder / manifests / setup_test_volume.pp
1 # == Class: cinder::setup_test_volume
2 #
3 # Setup a volume group on a loop device for test purposes.
4 #
5 # === Parameters
6 #
7 # [*volume_name*]
8 #   Volume group name. Defaults to 'cinder-volumes'.
9 #
10 # [*size*]
11 #   Volume group size. Defaults to '4G'.
12 #
13 # [*loopback_device*]
14 #   Loop device name. Defaults to '/dev/loop2'.
15 #
16 # [*volume_path*]
17 #   Volume image location. Defaults to '/var/lib/cinder'.
18 class cinder::setup_test_volume(
19   $volume_name     = 'cinder-volumes',
20   $volume_path     = '/var/lib/cinder',
21   $size            = '4G',
22   $loopback_device = '/dev/loop2'
23 ) {
24
25   package { 'lvm2':
26     ensure => present,
27   } ~>
28
29   file { $volume_path:
30     ensure  => directory,
31     owner   => 'cinder',
32     group   => 'cinder',
33     require => Package['cinder'],
34   } ~>
35
36   exec { "create_${volume_path}/${volume_name}":
37     command => "dd if=/dev/zero of=\"${volume_path}/${volume_name}\" bs=1 count=0 seek=${size}",
38     path    => ['/bin','/usr/bin','/sbin','/usr/sbin'],
39     unless  => "stat ${volume_path}/${volume_name}",
40   } ~>
41
42   exec { "losetup ${loopback_device} ${volume_path}/${volume_name}":
43     path        => ['/bin','/usr/bin','/sbin','/usr/sbin'],
44     refreshonly => true,
45   } ~>
46
47   exec { "pvcreate ${loopback_device}":
48     path        => ['/bin','/usr/bin','/sbin','/usr/sbin'],
49     unless      => "pvdisplay | grep ${volume_name}",
50     refreshonly => true,
51   } ~>
52
53   exec { "vgcreate ${volume_name} ${loopback_device}":
54     path        => ['/bin','/usr/bin','/sbin','/usr/sbin'],
55     refreshonly => true,
56   }
57
58 }
59