puppet-cinder/manifests/setup_test_volume.pp
Emilien Macchi 4d3e0665c6 setup_test_volume: stop managing /var/lib/cinder
/var/lib/cinder is already managed by packaging.
We should not manage it with Puppet, it can lead to permissions and
orchestration issues.
Instead, just require cinder packaging before managing lvm volumes.

Change-Id: I14275a326c0e655dce5d2a27e45811bba66602b2
Closes-bug: #1531521
2016-01-06 13:38:29 -05:00

56 lines
1.5 KiB
Puppet

# == Class: cinder::setup_test_volume
#
# Setup a volume group on a loop device for test purposes.
#
# === Parameters
#
# [*volume_name*]
# Volume group name. Defaults to 'cinder-volumes'.
#
# [*size*]
# Volume group size. Defaults to '4G'.
#
# [*loopback_device*]
# Loop device name. Defaults to '/dev/loop2'.
#
# [*volume_path*]
# Volume image location. Defaults to '/var/lib/cinder'.
class cinder::setup_test_volume(
$volume_name = 'cinder-volumes',
$volume_path = '/var/lib/cinder',
$size = '4G',
$loopback_device = '/dev/loop2'
) {
package { 'lvm2':
ensure => present,
require => Package['cinder'],
} ~>
exec { "create_${volume_path}/${volume_name}":
command => "dd if=/dev/zero of=\"${volume_path}/${volume_name}\" bs=1 count=0 seek=${size}",
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
unless => "stat ${volume_path}/${volume_name}",
} ~>
exec { "losetup ${loopback_device} ${volume_path}/${volume_name}":
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
unless => "losetup ${loopback_device}",
refreshonly => true,
} ~>
exec { "pvcreate ${loopback_device}":
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
unless => "pvdisplay | grep ${volume_name}",
refreshonly => true,
} ~>
exec { "vgcreate ${volume_name} ${loopback_device}":
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
unless => "vgdisplay | grep ${volume_name}",
refreshonly => true,
}
}