devstack-plugin-glusterfs: GlusterFS as a backend for Manila
This patch enables GlusterFS as a backend for Manila. This patch also introduces two new configuration parameters: * CONFIGURE_GLUSTERFS_MANILA - set to 'True', to enable GlusterFS as a backend for Manila. * GLUSTERFS_MANILA_DRIVER_TYPE - set Manila GlusterFS backend type to either 'glusterfs' or 'glusterfs-native'. Change-Id: I53e5b9e88b6ebc131c64dabc421875c06a3fafd4
This commit is contained in:
parent
7e7f058d84
commit
b3c21638ac
|
@ -192,3 +192,24 @@ function configure_nova_backend_glusterfs {
|
|||
|
||||
_mount_gluster_volume $NOVA_INSTANCES_PATH $NOVA_GLUSTERFS_SHARE
|
||||
}
|
||||
|
||||
# Configure GlusterFS-NFS as backend for Manila
|
||||
function _configure_manila_glusterfs_nfs {
|
||||
#TODO(BharatK): Add script to configure GlusterFS-NFS as a backend for Manila.
|
||||
echo "Need to add script to configure GlusterFS-NFS as a backend for Manila."
|
||||
}
|
||||
|
||||
# Configure GlusterFS-Native as backend for Manila
|
||||
function _configure_manila_glusterfs_native {
|
||||
#TODO(BharatK): Add script to configure GlusterFS-Native as a backend for Manila.
|
||||
echo "Need to add script to configure GlusterFS-Native as a backend for Manila."
|
||||
}
|
||||
|
||||
# Configure GlusterFS as a backend for Manila
|
||||
function configure_manila_backend_glusterfs {
|
||||
if [[ "${GLUSTERFS_MANILA_DRIVER_TYPE}" == "glusterfs" ]]; then
|
||||
_configure_manila_glusterfs_nfs
|
||||
else
|
||||
_configure_manila_glusterfs_native
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
# - configure_cinder_backend_glusterfs
|
||||
# - configure_glance_backend_glusterfs
|
||||
# - configure_nova_backend_glusterfs
|
||||
# - configure_manila_backend_glusterfs
|
||||
# - stop_glusterfs
|
||||
# - cleanup_glusterfs
|
||||
|
||||
|
@ -30,10 +31,16 @@ CONFIGURE_GLUSTERFS_GLANCE=${CONFIGURE_GLUSTERFS_GLANCE:-False}
|
|||
# Set CONFIGURE_GLUSTERFS_NOVA to true, to configure GlusterFS as a backend for Nova.
|
||||
CONFIGURE_GLUSTERFS_NOVA=${CONFIGURE_GLUSTERFS_NOVA:-False}
|
||||
|
||||
# Set CONFIGURE_GLUSTERFS_MANILA to true, to configure GlusterFS as a backend for Manila.
|
||||
CONFIGURE_GLUSTERFS_MANILA=${CONFIGURE_GLUSTERFS_MANILA:-False}
|
||||
|
||||
# Set GLUSTERFS_MANILA_DRIVER_TYPE to either 'glusterfs' or 'glusterfs-native'.
|
||||
GLUSTERFS_MANILA_DRIVER_TYPE=${GLUSTERFS_MANILA_DRIVER_TYPE:-glusterfs}
|
||||
|
||||
# Error out when devstack-plugin-glusterfs is enabled, but not selected as a backend for Cinder, Glance or Nova.
|
||||
if [ "$CONFIGURE_GLUSTERFS_CINDER" = "False" ] && [ "$CONFIGURE_GLUSTERFS_GLANCE" = "False" ] && [ "$CONFIGURE_GLUSTERFS_NOVA" = "False" ]; then
|
||||
echo "GlusterFS plugin enabled but not selected as a backend for Cinder, Glance or Nova."
|
||||
echo "Please set CONFIGURE_GLUSTERFS_CINDER, CONFIGURE_GLUSTERFS_GLANCE and/or CONFIGURE_GLUSTERFS_NOVA to True in localrc."
|
||||
if [ "$CONFIGURE_GLUSTERFS_CINDER" = "False" ] && [ "$CONFIGURE_GLUSTERFS_GLANCE" = "False" ] && [ "$CONFIGURE_GLUSTERFS_NOVA" = "False" ] && [ "$CONFIGURE_GLUSTERFS_MANILA" = "False" ]; then
|
||||
echo "GlusterFS plugin enabled but not selected as a backend for Cinder, Glance, Nova or Manila."
|
||||
echo "Please set CONFIGURE_GLUSTERFS_CINDER, CONFIGURE_GLUSTERFS_GLANCE, CONFIGURE_GLUSTERFS_NOVA and/or CONFIGURE_GLUSTERFS_MANILA to True in localrc."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -99,6 +106,10 @@ elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
|||
echo_summary "Configuring GlusterFS as a backend for Nova"
|
||||
configure_nova_backend_glusterfs
|
||||
fi
|
||||
if is_service_enabled manila && [[ "$CONFIGURE_GLUSTERFS_MANILA" == "True" ]]; then
|
||||
echo_summary "Configuring GlusterFS as a backend for Manila"
|
||||
configure_manila_backend_glusterfs
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$1" == "unstack" ]]; then
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
#!/bin/bash -xe
|
||||
#
|
||||
# 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.
|
||||
|
||||
# This script is executed inside post_test_hook function in devstack gate.
|
||||
|
||||
sudo chown -R jenkins:stack $BASE/new/tempest
|
||||
sudo chown -R jenkins:stack $BASE/data/tempest
|
||||
sudo chmod -R o+rx $BASE/new/devstack/files
|
||||
|
||||
# Import devstack functions 'iniset'
|
||||
source $BASE/new/devstack/functions
|
||||
|
||||
|
||||
|
||||
if [[ "$JOB_NAME" =~ "glusterfs-native" ]]; then
|
||||
local BACKEND_NAME="GLUSTERNATIVE"
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share enable_protocols glusterfs
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share storage_protocol GLUSTERFS
|
||||
else
|
||||
local BACKEND_NAME="GLUSTERFS"
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share enable_protocols nfs
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share enable_ip_rules_for_protocols nfs
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share storage_protocol NFS
|
||||
fi
|
||||
|
||||
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share backend_names $BACKEND_NAME
|
||||
|
||||
# Set two retries for CI jobs
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share share_creation_retry_number 2
|
||||
|
||||
# Suppress errors in cleanup of resources
|
||||
SUPPRESS_ERRORS=${SUPPRESS_ERRORS_IN_CLEANUP:-True}
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share suppress_errors_in_cleanup $SUPPRESS_ERRORS
|
||||
|
||||
|
||||
# Disable multi_backend tests
|
||||
RUN_MANILA_MULTI_BACKEND_TESTS=${RUN_MANILA_MULTI_BACKEND_TESTS:-False}
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share multi_backend $RUN_MANILA_MULTI_BACKEND_TESTS
|
||||
|
||||
# Disable manage/unmanage tests
|
||||
RUN_MANILA_MANAGE_TESTS=${RUN_MANILA_MANAGE_TESTS:-False}
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share run_manage_unmanage_tests $RUN_MANILA_MANAGE_TESTS
|
||||
|
||||
# Disable extend tests
|
||||
RUN_MANILA_EXTEND_TESTS=${RUN_MANILA_EXTEND_TESTS:-False}
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share run_extend_tests $RUN_MANILA_EXTEND_TESTS
|
||||
|
||||
# Disable shrink tests
|
||||
RUN_MANILA_SHRINK_TESTS=${RUN_MANILA_SHRINK_TESTS:-False}
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share run_shrink_tests $RUN_MANILA_SHRINK_TESTS
|
||||
|
||||
# Disable multi_tenancy tests
|
||||
iniset $BASE/new/tempest/etc/tempest.conf share multitenancy_enabled False
|
||||
|
||||
|
||||
# let us control if we die or not
|
||||
set +o errexit
|
||||
cd $BASE/new/tempest
|
||||
|
||||
export MANILA_TEMPEST_CONCURRENCY=${MANILA_TEMPEST_CONCURRENCY:-12}
|
||||
export MANILA_TESTS=${MANILA_TESTS:-'tempest.api.share*'}
|
||||
|
||||
if [[ "$JOB_NAME" =~ "scenario" ]]; then
|
||||
echo "Set test set to scenario only"
|
||||
MANILA_TESTS='tempest.scenario.*share*'
|
||||
fi
|
||||
|
||||
echo "Running tempest manila test suites"
|
||||
sudo -H -u jenkins tox -eall $MANILA_TESTS -- --concurrency=$MANILA_TEMPEST_CONCURRENCY
|
|
@ -0,0 +1,50 @@
|
|||
#!/bin/bash -xe
|
||||
#
|
||||
# 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.
|
||||
|
||||
# This script is executed inside pre_test_hook function in devstack gate.
|
||||
|
||||
localrc_path=$BASE/new/devstack/localrc
|
||||
echo "DEVSTACK_GATE_TEMPEST_ALLOW_TENANT_ISOLATION=1" >> $localrc_path
|
||||
echo "API_RATE_LIMIT=False" >> $localrc_path
|
||||
echo "TEMPEST_SERVICES+=,manila" >> $localrc_path
|
||||
|
||||
echo "MANILA_USE_DOWNGRADE_MIGRATIONS=True" >> $localrc_path
|
||||
|
||||
# JOB_NAME is defined in openstack-infra/config project
|
||||
# used by CI/CD, where this script is intended to be used.
|
||||
if [[ "$JOB_NAME" =~ "multibackend" ]]; then
|
||||
echo "MANILA_MULTI_BACKEND=True" >> $localrc_path
|
||||
else
|
||||
echo "MANILA_MULTI_BACKEND=False" >> $localrc_path
|
||||
fi
|
||||
|
||||
# Enabling isolated metadata in Neutron is required because
|
||||
# Tempest creates isolated networks and created vm's in scenario tests don't
|
||||
# have access to Nova Metadata service. This leads to unavailability of
|
||||
# created vm's in scenario tests.
|
||||
echo '[[post-config|$Q_DHCP_CONF_FILE]]' >> $localrc_path
|
||||
echo '[DEFAULT]' >> $localrc_path
|
||||
echo "enable_isolated_metadata=True" >> $localrc_path
|
||||
|
||||
# Go to Tempest dir and checkout stable commit to avoid possible
|
||||
# incompatibilities for plugin stored in Manila repo.
|
||||
TEMPEST_COMMIT="489f5e62" # 15 June, 2015
|
||||
cd $BASE/new/tempest
|
||||
git checkout $TEMPEST_COMMIT
|
||||
|
||||
# Print current Tempest status
|
||||
git status
|
||||
|
||||
# Install Manila Tempest integration
|
||||
cp -r $BASE/new/manila/contrib/tempest/tempest/* $BASE/new/tempest/tempest
|
Loading…
Reference in New Issue