Puppet Plan: powerstore::delete_multiple_volumes
- Defined in:
- plans/delete_multiple_volumes.pp
Overview
This plan deletes multiple volumes after first removing them from a group if they are a group member.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'plans/delete_multiple_volumes.pp', line 3
plan powerstore::delete_multiple_volumes(
TargetSpec $targets,
Integer[1,100] $volume_count,
){
$volumes = run_task('powerstore::volume_collection_query', $targets, 'Fetching volumes', {'query_string' => 'select=*,volume_groups'})[0].value
$volumes_in_group = $volumes.filter | $k, $v | { !$v['volume_groups'].empty }
Integer[1,$volume_count].each |$i| {
$volume_name = "vol_${i}"
unless $volume_name in $volumes_in_group {
next()
}
$volume_groups = $volumes_in_group[$volume_name]['volume_groups']
if $volume_groups {
$volume_groups.each | $vg | {
out::message("Removing volume ${volume_name} from volume group ${vg}")
run_task('powerstore::volume_group_remove_members', $targets, {'id' => $vg['id'], 'volume_ids' => [$volumes[$volume_name]['id']]})
}
}
}
apply($targets) {
Integer[1,$volume_count].each |$i| {
$volume_name = "vol_${i}"
notice("Deleting volume vol_${i}")
powerstore_volume { "vol_${i}":
ensure => 'absent',
}
}
}
}
|