#!/bin/bash
#
# Copyright 2014 IBM Corp.
# Copyright (c) 2014 OpenStack Foundation
# All Rights Reserved.
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.
#
# Authors:
#   Alon Marx <alonma@il.ibm.com>
#

# lib/cinder_plugins/xiv
# Configure the xiv_ds8k driver for xiv testing

# Enable xiv_ds8k driver for xiv with:
#
#   CINDER_ENABLED_BACKENDS+=,xiv:<volume-type-name>
#   XIV_DRIVER_VERSION=<version-string>
#   SAN_IP=<storage-ip-or-hostname>
#   SAN_LOGIN=<storage-admin-account>
#   SAN_PASSWORD=<storage-admin-password>
#   SAN_CLUSTERNAME=<cluster-name>
#   CONNECTION_TYPE=<connection-type> iscsi|fc
#   XIV_CHAP=<chap-type> disabled|enabled

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

# configure_cinder_backend_xiv - Configure Cinder for xiv backends

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

# Defaults
# --------
# Set up default directories


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

# configure_cinder_backend_xiv - Set config files, create data dirs, etc
function configure_cinder_backend_xiv {

    local be_name=$1

    python -c 'from xiv_ds8k_openstack.xiv_nova_proxy import XIVNovaProxy'
    if [ $? -ne 0 ]; then
        die $LINENO "XIV_DS8K driver is missing. Please install first"
    fi

    # For reference:
    # ``XIV_DS8K_BACKEND='IBM-XIV_'${SAN_IP}'_'${SAN_CLUSTERNAME}'_'${CONNECTION_TYPE}``
    iniset $CINDER_CONF DEFAULT xiv_ds8k_driver_version $XIV_DRIVER_VERSION

    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
    iniset $CINDER_CONF $be_name san_clustername $SAN_CLUSTERNAME
    iniset $CINDER_CONF $be_name xiv_ds8k_connection_type $CONNECTION_TYPE
    iniset $CINDER_CONF $be_name volume_backend_name $be_name
    iniset $CINDER_CONF $be_name volume_driver 'cinder.volume.drivers.ibm.xiv_ds8k.XIVDS8KDriver'
    iniset $CINDER_CONF $be_name xiv_ds8k_proxy 'xiv_ds8k_openstack.xiv_nova_proxy.XIVNovaProxy'
    iniset $CINDER_CONF $be_name xiv_chap $XIV_CHAP
}

# Restore xtrace
$XIV_XTRACE

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