/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
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Puppet
		
	
	
	
	
	
			
		
		
	
	
			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,
 | 
						|
  }
 | 
						|
 | 
						|
}
 | 
						|
 |