# lib/cinder_backends/solidfire
# Configure the solidfire driver

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

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

# CINDER_CONF

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

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


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

# configure_cinder_backend_solidfire - Set config files, create data dirs, etc
function configure_cinder_backend_solidfire {
    # To use SolidFire, set the following in local.conf:
    # CINDER_ENABLED_BACKENDS+=,solidfire:<volume-type-name>
    # SAN_IP=<mvip>
    # SAN_LOGIN=<cluster-admin-account>
    # SAN_PASSWORD=<cluster-admin-password>

    local be_name=$1
    iniset $CINDER_CONF $be_name volume_backend_name $be_name
    iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.solidfire.SolidFireDriver"
    iniset $CINDER_CONF $be_name san_ip $SAN_IP
    iniset $CINDER_CONF $be_name san_login $SAN_LOGIN
    iniset $CINDER_CONF $be_name san_password $SAN_PASSWORD
}


# Restore xtrace
$MY_XTRACE

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