#!/bin/bash
#
# lib/cinder_plugins/nfs
# Configure the nfs driver

# Enable with:
#
#   CINDER_DRIVER=nfs

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

# configure_cinder_driver - make configuration changes, including those to other services

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


# Defaults
# --------

# Set up default directories


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

# configure_cinder_driver - Set config files, create data dirs, etc
function configure_cinder_driver {
    iniset $CINDER_CONF DEFAULT volume_driver "cinder.volume.drivers.nfs.NfsDriver"
    iniset $CINDER_CONF DEFAULT nfs_shares_config "$CINDER_CONF_DIR/nfs_shares.conf"
    echo "$CINDER_NFS_SERVERPATH" | tee "$CINDER_CONF_DIR/nfs_shares.conf"
}

# Restore xtrace
$_XTRACE_CINDER_NFS

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