Adds xiv_ds8k cinder driver support

To use xiv_ds8k, set the following in localrc:
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

Change-Id: I084ad2b2cb8e34c4a8aed77a52e90f9a9739f1f3
This commit is contained in:
Alon Marx 2014-07-30 23:44:33 +03:00
parent ff98b144d6
commit d178cf401e
1 changed files with 84 additions and 0 deletions

84
lib/cinder_backends/xiv Normal file
View File

@ -0,0 +1,84 @@
# 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: