#!/bin/bash # # lib/cinder_backends/lvm # Configure the LVM backend # Enable with: # # CINDER_ENABLED_BACKENDS+=,lvm:lvmname # Dependencies: # # - ``functions`` file # - ``cinder`` configurations # CINDER_CONF # DATA_DIR # VOLUME_GROUP_NAME # clean_cinder_backend_lvm - called from clean_cinder() # configure_cinder_backend_lvm - called from configure_cinder() # init_cinder_backend_lvm - called from init_cinder() # Save trace setting _XTRACE_CINDER_LVM=$(set +o | grep xtrace) set +o xtrace # TODO: resurrect backing device...need to know how to set values #VOLUME_BACKING_DEVICE=${VOLUME_BACKING_DEVICE:-} # Entry Points # ------------ # cleanup_cinder_backend_lvm - Delete volume group and remove backing file # cleanup_cinder_backend_lvm $be_name function cleanup_cinder_backend_lvm { local be_name=$1 # Campsite rule: leave behind a volume group at least as clean as we found it clean_lvm_volume_group $VOLUME_GROUP_NAME-$be_name clean_lvm_filter } # configure_cinder_backend_lvm - Set config files, create data dirs, etc # configure_cinder_backend_lvm $be_name function configure_cinder_backend_lvm { local be_name=$1 iniset $CINDER_CONF $be_name volume_backend_name $be_name iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.lvm.LVMVolumeDriver" iniset $CINDER_CONF $be_name volume_group $VOLUME_GROUP_NAME-$be_name iniset $CINDER_CONF $be_name target_helper "$CINDER_TARGET_HELPER" iniset $CINDER_CONF $be_name target_protocol "$CINDER_TARGET_PROTOCOL" iniset $CINDER_CONF $be_name target_port "$CINDER_TARGET_PORT" iniset $CINDER_CONF $be_name target_prefix "$CINDER_TARGET_PREFIX" iniset $CINDER_CONF $be_name lvm_type "$CINDER_LVM_TYPE" iniset $CINDER_CONF $be_name volume_clear "$CINDER_VOLUME_CLEAR" } # init_cinder_backend_lvm - Initialize volume group # init_cinder_backend_lvm $be_name function init_cinder_backend_lvm { local be_name=$1 # Start with a clean volume group init_lvm_volume_group $VOLUME_GROUP_NAME-$be_name $VOLUME_BACKING_FILE_SIZE } # Restore xtrace $_XTRACE_CINDER_LVM # mode: shell-script # End: