#!/bin/bash
#
# lib/cinder_backends/glusterfs
# Configure the glusterfs backend

# Enable with:
#
#   CINDER_ENABLED_BACKENDS+=,glusterfs:<volume-type-name>

# Dependencies:
#
# - ``functions`` file
# - ``cinder`` configurations

# CINDER_CONF
# CINDER_CONF_DIR
# CINDER_GLUSTERFS_SHARES - Contents of glusterfs shares config file

# configure_cinder_backend_glusterfs - Configure Cinder for GlusterFS backends

# Save trace setting
GLUSTERFS_XTRACE=$(set +o | grep xtrace)
set +o xtrace


# Entry Points
# ------------

# configure_cinder_backend_glusterfs - Set config files, create data dirs, etc
function configure_cinder_backend_glusterfs {
    local be_name=$1
    iniset $CINDER_CONF $be_name volume_backend_name $be_name
    iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.glusterfs.GlusterfsDriver"
    iniset $CINDER_CONF $be_name glusterfs_shares_config "$CINDER_CONF_DIR/glusterfs-shares-$be_name.conf"

    if [[ -n "$CINDER_GLUSTERFS_SHARES" ]]; then
        CINDER_GLUSTERFS_SHARES=$(echo $CINDER_GLUSTERFS_SHARES | tr ";" "\n")
        echo "$CINDER_GLUSTERFS_SHARES" | tee "$CINDER_CONF_DIR/glusterfs-shares-$be_name.conf"
    fi
}


# Restore xtrace
$GLUSTERFS_XTRACE

# Local variables:
# mode: shell-script
# End:
