add a glusterfs_native driver + heketi layout backend variant

A bit of refactoring was needed.

Change-Id: If101230972b091998b5389a2a71e9357c4256bb4
This commit is contained in:
Csaba Henk 2016-03-03 08:16:40 +01:00
parent 97d2df17f4
commit e4567a24f2
6 changed files with 92 additions and 10 deletions

View File

@ -35,6 +35,6 @@ As part of "unstack.sh":
* To enable Gluster as a backend for Manila:
CONFIGURE_GLUSTERFS_MANILA=True
Also select specific gluster backend type for manila, default is "glusterfs":
GLUSTERFS_MANILA_DRIVER_TYPE=glusterfs-{nfs{,-heketi},native}
GLUSTERFS_MANILA_DRIVER_TYPE=glusterfs-{nfs,native}{,-heketi}
* Then run "stack.sh"

View File

@ -302,7 +302,7 @@ function _configure_glusterfs_server_in_local_host_for_tls_support {
# Setup and configure glusterfs_native.py as the backend share driver for Manila
function _configure_manila_glusterfs_native {
local share_backend=$1
# Create necessary files to allow GlusterFS volumes to use TLS features
local common_name=server.com
@ -327,11 +327,19 @@ function _configure_manila_glusterfs_native {
local glusterfs_volume_pattern=manila-glusterfs-native-vol-#{size}G-\\\\d+$
iniset $MANILA_CONF $group_name share_driver $share_driver
iniset $MANILA_CONF $group_name share_backend_name GLUSTERFSNATIVE
iniset $MANILA_CONF $group_name glusterfs_servers $(hostname)
iniset $MANILA_CONF $group_name driver_handles_share_servers False
iniset $MANILA_CONF $group_name glusterfs_volume_pattern $glusterfs_volume_pattern
_configure_native_common $group_name $share_backend
}
function _configure_native_common {
local group_name=$1
local share_backend=$2
iniset $MANILA_CONF $group_name share_backend_name $share_backend
# Set enabled_share_protocols to be GLUSTERFS that is used by
# glusterfs_native driver.
iniset $MANILA_CONF DEFAULT enabled_share_protocols GLUSTERFS
@ -366,7 +374,7 @@ function _configure_setup_heketi {
$GLUSTERFS_PLUGIN_DIR/extras/heketisetup.py -s 1T -n 3 -v -D $(hostname)
}
function _configure_manila_glusterfs_heketi {
function _configure_manila_glusterfs_heketi_common {
local group_name=$1
_setup_rootssh
@ -379,6 +387,18 @@ function _configure_manila_glusterfs_heketi {
iniset $MANILA_CONF $group_name glusterfs_heketi_volume_replica 1
}
function _configure_manila_glusterfs_native_heketi {
install_package rsync
local group_name=$1
iniset $MANILA_CONF $group_name glusterfs_native_CA_cert "$GLUSTERFS_PLUGIN_DIR"/extras/cert/gluster_ca.pem
iniset $MANILA_CONF $group_name glusterfs_native_CA_key "$GLUSTERFS_PLUGIN_DIR"/extras/cert/gluster_ca-priv.pem
iniset $MANILA_CONF $group_name glusterfs_native_CA_passphrase marharepa
_configure_manila_glusterfs_heketi_common $group_name
}
# Configure GlusterFS as a backend for Manila
function configure_manila_backend_glusterfs {
case "$GLUSTERFS_MANILA_DRIVER_TYPE" in
@ -387,13 +407,16 @@ function configure_manila_backend_glusterfs {
;;
glusterfs-heketi|glusterfs-nfs-heketi)
_configure_manila_glusterfs_nfs_common glusterheketi1 GLUSTERFSHEKETI
_configure_manila_glusterfs_heketi glusterheketi1
_configure_manila_glusterfs_heketi_common glusterheketi1
;;
glusterfs-native)
_configure_manila_glusterfs_native
_configure_manila_glusterfs_native GLUSTERFSNATIVE
;;
glusterfs-native-heketi)
_configure_native_common glusterfsnativeheketi1 GLUSTERFSNATIVEHEKETI
_configure_manila_glusterfs_native_heketi glusterfsnativeheketi1
;;
*)
echo "no configuration hook for GLUSTERFS_MANILA_DRIVER_TYPE=${GLUSTERFS_MANILA_DRIVER_TYPE}"
;;
esac
}

View File

@ -87,7 +87,7 @@ fi
CONFIGURE_GLUSTERFS_MANILA=${CONFIGURE_GLUSTERFS_MANILA:-False}
if [ "$CONFIGURE_GLUSTERFS_MANILA" == "True" ]; then
# Set GLUSTERFS_MANILA_DRIVER_TYPE to one of 'glusterfs-{nfs{,-heketi},native}.
# Set GLUSTERFS_MANILA_DRIVER_TYPE to one of 'glusterfs-{nfs,native}{,-heketi}.
GLUSTERFS_MANILA_DRIVER_TYPE=${GLUSTERFS_MANILA_DRIVER_TYPE:-glusterfs}
# Set GLUSTERFS_VG_NAME to the name of volume group.

View File

@ -0,0 +1,30 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI9PbzSyl+LnoCAggA
MBQGCCqGSIb3DQMHBAh7iNugZ8dnhgSCBMiERtool0cnnoaoD5OiZkzsQAtUFdCH
85fOZpwaCecTlGiyH4FVJ9j9j7KB3uOckubT+dNrHlEtWetnqgSHm026XPb6y701
c+HO4CzXPMiAlFSfzRWY5whwBuUbJl4IeLiXdrEt++JggXFFPuY6Vy0hi6NMhPVS
PUy/sl1qPFRaHwU2Pb26RkBmjAixoA+OwkjYcKnRBfnId5Gw55yy/yMKiWfgwwZX
WOEIUHSStAX1GY2WbWumqEJ2+aQY3sdW2oFOyosqe75XEsJnUe//tkVYc4KMx38s
jDZH4+lMgvCKyIsj7EUD+bAquzTdBWChSnkUy2ShbGUTDYu0GcW3pwfI/pw8o7CG
IRiNKCybw6Uz3oGMCaW5NYHm7gOqsxYRi/aWKwXDuk0gSPNk854dPT4uwZN7wMHZ
OIt5z4Bi05Nbvb5q1GwN1UP4Vg8z5ygUdUccOaqOLboFXQnGm/3646c8Ds9B0NQF
ekOIPAed0sjlpm8Jn4XlD9MBoBZED9iv05tYDPDRolsghvgZMSlwdYelTa8jFFxS
Bb23Gvk4hrfXy2D8KNKoZXXjMVDn2RubAE3ssnQSy7S4+8uEFH9YJxhAhsC3mTQ6
E9meIF9SHL/LJFdeM1vLqi6+N3l4WF6QOEKHOIt8REmJhjWbTqt6hnOg7d/0ntCK
vD71fZy1Z42hYuZHDjngVGo+9oftFFZ1+gJfGHD5+zOEfaQjjMKEW0TtCyC7rF0N
Q/yf979rsI2P2XQDCPPydF67zQk7yE6iPRxbZXYI9mbEFNqagSu3mqws/Cpr1J9e
rwzYP5dCxDYjXz0RT+eIz/f9dn6OLe+gB/hUKeBK7ps7HdEALd5EZ7FtuWUZF9QD
fc104CZAIn9MnxTfQEWH0pD0nbhPrCs4mi8YM9KpqxJP2NqfK0CgZXAW4bpBomqh
MZYHLZOKHxcttJu0yvF9ETDt+ub7Npm6NY5l4Prykp85miMHr5K+C/H/VmQz0vTF
FFgKMFbOQzI65yMmlu4D29vZRXoFioE96hastjD9o9uJ8WREHPHYKbjQwt53ewGX
Z1fUVsQa2YIvbVNOPoXo62pPCP5uTEbf3Ewut/o2DPxJd9q98jAYdf6CSVNRmv0p
9od3ff4bZ4w1rs4DGutRAO1pUt1Cq+/TlrWhODv3dAPF4g9fwvg6dXjidRU6r+5i
HA/wtu/bmXfSw0ukSxq66mUNqzJvKSgR78oy7PTq8bA/EBrqFMm5RYvdpwf/HuBe
lcXZJbrBeKKvjCo5woCcwXp0w6UzQSx05pWR11nXlXGlmLFf1Mjh+q36qE5PnP+J
r1YbW8UHqTXjeRpnO1P1phIvIqYCWtN7qQsygeOaBVFLoQxGZ9Cs2//Vf5vwyACz
qORCrxKtTmzieLsvBFh4nEs4dWQPJpsG5ZWX9zQomVMOMq2M7oddGzZBim/FqE73
V2+PhO5Op+svId8YJytRQvICvGZT47NG7hP0istCdQ9PmTAUPNcM5JWiv3csCSXg
VR0UmNbrUjU53jCndNdm9G3wLO+c07SVkS8M08mAAs9KWq9zlNjSz5tzSd5xAS+9
AYvzDVt5ModHB67mQstH97gI7YId/GT50aHO9UJ8j2Widac3bkwqNZ+kZQEA80U+
D+E=
-----END ENCRYPTED PRIVATE KEY-----

View File

@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDJTCCAg2gAwIBAgIJANSpdKhWbgKEMA0GCSqGSIb3DQEBCwUAMCkxJzAlBgNV
BAMMHk9wZW5TdGFjayBNYW5pbGEgR2x1c3RlckZTIEZUVzAeFw0xNjAzMDMxMDU4
NTZaFw0xNjA0MDIxMDU4NTZaMCkxJzAlBgNVBAMMHk9wZW5TdGFjayBNYW5pbGEg
R2x1c3RlckZTIEZUVzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOAX
9QE9eCQyk1T6QjAIse+fztcmHXBoO91KZfYJdEcODosqKGl7bNxmGlwx8Pq7P3El
/XvYGvF5Xdeub5BYUUMaQc8FMZ5kx1k4/+7hZYakyP+8HwoDj2fmSVI0qhkX0Fwz
wkZrkqgVSSZ0e9QI++LegdYjkgwnll8h2ugZWkBcBjYCGvZzYET+C8tmrap+rmC8
rfmMSlx7PFIO5IU2uayUNkkkKFoNnx/Suhx2CXsyr5SAoR82Yux2QZp0zt0pI5A8
tSRGAXTu8whSsQXUXinjDU5rPJ2MSi0vLTn2P5vN9xjAv4TU02EGfB1JHJK76FyD
rBYSwwDX0IhPubdPnQkCAwEAAaNQME4wHQYDVR0OBBYEFFnzCxSGZdgYizWBdc6/
fThm8Zr7MB8GA1UdIwQYMBaAFFnzCxSGZdgYizWBdc6/fThm8Zr7MAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQELBQADggEBACCR44DLJlwL51OEHdf8iU7VSAAH+2Az
vr7+1yDlIJUJGW4Yei28FQZXWTGVrQXUvRPDdNswFWLPDUFGkjAVSTodTwKZDkzF
3dUp9uOIFaMf0LstNLYWVpmwx4wdaT3dGsDVUPnqiuO1wvfVgZkPszna67cseuDY
hinCuXQSNyH8IwvR6u9j5QeKV90Xm1XeRCLPg7wcZsqbFwpdz2l1InybSd1KuBpR
po09IpN3QX1gcDoGD7N7Fvp/sooxbca06NVwnTbpKQW7FXyYB97I2ThvQ2tmRejn
4QCiFRr7dCWNEVD4HXNBZ7921gYIqKYjj+gDGA+UmGep8Oq/MqVDUX0=
-----END CERTIFICATE-----

View File

@ -28,8 +28,18 @@ for env_var in ${DEVSTACK_LOCAL_CONFIG// / }; do
export $env_var;
done
if [[ "$GLUSTERFS_MANILA_DRIVER_TYPE" == "glusterfs-native" ]]; then
local BACKEND_NAME="GLUSTERNATIVE"
if [[ "$GLUSTERFS_MANILA_DRIVER_TYPE" =~ "glusterfs-native" ]]; then
case "$GLUSTERFS_MANILA_DRIVER_TYPE" in
glusterfs-native)
local BACKEND_NAME="GLUSTERFSNATIVE"
;;
glusterfs-native-heketi)
local BACKEND_NAME="GLUSTERFNATIVEHEKETI"
;;
*)
echo "no BACKEND_NAME for GLUSTERFS_MANILA_DRIVER_TYPE=${GLUSTERFS_MANILA_DRIVER_TYPE}"
;;
esac
iniset $TEMPEST_CONFIG share enable_protocols glusterfs
iniset $TEMPEST_CONFIG share storage_protocol glusterfs
# Disable tempest config option that enables creation of 'ip' type access