Added support for fake drivers as Cinder backend

FakeLoggingVolumeDriver  will be used for functional Cinder tests to
prevent dependencies on any storage.

FakeGateDriver is based on LVM and will be used to run Tempest tests for
such features like CG's, replication, etc.

Depends-On: I383bcdb531c7d52c0fdbb6875de73f1274a92854
Change-Id: I2dc8ea416f5eb3fcc9d2e959533497e464220ff5
This commit is contained in:
Ivan Kolodyazhny 2016-07-28 18:42:25 +03:00
parent adcf0c50cd
commit 447f141d4f
2 changed files with 121 additions and 0 deletions

47
lib/cinder_backends/fake Normal file
View File

@ -0,0 +1,47 @@
#!/bin/bash
#
# lib/cinder_backends/fake
# Configure the Fake backend
# Enable with:
#
# CINDER_ENABLED_BACKENDS+=,fake:fake
# Dependencies:
#
# - ``functions`` file
# - ``cinder`` configurations
# CINDER_CONF
# clean_cinder_backend_fake - called from clean_cinder()
# configure_cinder_backend_fake - called from configure_cinder()
# init_cinder_backend_fake - called from init_cinder()
# Save trace setting
_XTRACE_CINDER_FAKE=$(set +o | grep xtrace)
set +o xtrace
function cleanup_cinder_backend_fake {
local be_name=$1
}
function configure_cinder_backend_fake {
local be_name=$1
iniset $CINDER_CONF $be_name volume_backend_name $be_name
iniset $CINDER_CONF $be_name volume_driver "cinder.tests.fake_driver.FakeLoggingVolumeDriver"
}
function init_cinder_backend_fake {
local be_name=$1
}
# Restore xtrace
$_XTRACE_CINDER_FAKE
# mode: shell-script
# End:

View File

@ -0,0 +1,74 @@
#!/bin/bash
#
# lib/cinder_backends/lvm
# Configure the LVM backend
# Enable with:
#
# CINDER_ENABLED_BACKENDS+=,fake_gate: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.tests.fake_driver.FakeGateDriver"
iniset $CINDER_CONF $be_name volume_group $VOLUME_GROUP_NAME-$be_name
iniset $CINDER_CONF $be_name iscsi_helper "$CINDER_ISCSI_HELPER"
iniset $CINDER_CONF $be_name lvm_type "$CINDER_LVM_TYPE"
if [[ "$CINDER_VOLUME_CLEAR" == "non" ]]; then
iniset $CINDER_CONF $be_name volume_clear none
fi
}
# 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: