Add Manila support for Ubuntu

Let the plugin setup and configure CephFS as the storage backend for
Manila. This is not done by default. Refer the README to do so.
Add 'pre_test_hook' and 'post_test_hook' scripts that would be needed
to configure Manila-Ceph CI jobs.
The following changes are also made:
* Install a development version of Ceph that is compatible with Manila's
 CephFSNative driver.
* The development version is a version greater than Infernalis. And
 from Infernalis onwards, the ceph daemons are run as user "ceph".
 So allow the daemons to run as user "ceph" for such versions.
* Enhance get_ceph_version to check Ceph version even when the
 ceph mon daemon is not up, by checking the CLI version.
Co-Authored-By: John Spray <john.spray@redhat.com>
Change-Id: I74314bfcc6b52d524bb84f2232a988f275b9afbf
This commit is contained in:
Ramana Raja
2015年12月16日 21:40:38 +05:30
parent dacdc8df02
commit 530f20c38d

135
manila/post_test_hook.sh Normal file
View File

@@ -0,0 +1,135 @@
#!/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
export TEMPEST_CONFIG=$BASE/new/tempest/etc/tempest.conf
# === Handle script arguments ===
# The script arguments as detailed here in the manila CI job
# template,
# https://github.com/openstack-infra/project-config/commit/6ae99cee70a33d6cc312a7f9a83aa6db8b39ce21
# Handle the relevant ones.
# First argument is the type of backend configuration that is setup. It can
# either be 'singlebackend' or 'multiplebackend'.
MANILA_BACKEND_TYPE=1ドル
MANILA_BACKEND_TYPE=${MANILA_BACKEND_TYPE:-singlebackend}
# Second argument is the type of the cephfs driver that is setup. Currently,
# 'cephfsnative' is the only possibility.
MANILA_CEPH_DRIVER=2ドル
MANILA_CEPH_DRIVER=${MANILA_CEPH_DRIVER:-cephfsnative}
# Third argument is the type of Tempest tests to be run, 'api' or 'scenario'.
MANILA_TEST_TYPE=3ドル
MANILA_TEST_TYPE=${MANILA_TEST_TYPE:-api}
if [[ $MANILA_CEPH_DRIVER == 'cephfsnative' ]]; then
export BACKEND_NAME="CEPHFSNATIVE1"
iniset $TEMPEST_CONFIG share enable_protocols cephfs
iniset $TEMPEST_CONFIG share storage_protocol CEPHFS
# Disable tempest config option that enables creation of 'ip' type access
# rules by default during tempest test runs.
iniset $TEMPEST_CONFIG share enable_ip_rules_for_protocols
iniset $TEMPEST_CONFIG share capability_snapshot_support False
iniset $TEMPEST_CONFIG share backend_names $BACKEND_NAME
# Disable manage/unmanage tests
# CephFSNative driver does not yet support manage and unmanage operations of shares.
RUN_MANILA_MANAGE_TESTS=${RUN_MANILA_MANAGE_TESTS:-False}
iniset $TEMPEST_CONFIG share run_manage_unmanage_tests $RUN_MANILA_MANAGE_TESTS
fi
# Set two retries for CI jobs.
iniset $TEMPEST_CONFIG share share_creation_retry_number 2
# Suppress errors in cleanup of resources.
SUPPRESS_ERRORS=${SUPPRESS_ERRORS_IN_CLEANUP:-True}
iniset $TEMPEST_CONFIG share suppress_errors_in_cleanup $SUPPRESS_ERRORS
if [[ $MANILA_BACKEND_TYPE == 'multibackend' ]]; then
RUN_MANILA_MULTI_BACKEND_TESTS=True
elif [[ $MANILA_BACKEND_TYPE == 'singlebackend' ]]; then
RUN_MANILA_MULTI_BACKEND_TESTS=False
fi
iniset $TEMPEST_CONFIG share multi_backend $RUN_MANILA_MULTI_BACKEND_TESTS
# Enable extend tests.
RUN_MANILA_EXTEND_TESTS=${RUN_MANILA_EXTEND_TESTS:-True}
iniset $TEMPEST_CONFIG share run_extend_tests $RUN_MANILA_EXTEND_TESTS
# Enable shrink tests.
RUN_MANILA_SHRINK_TESTS=${RUN_MANILA_SHRINK_TESTS:-True}
iniset $TEMPEST_CONFIG share run_shrink_tests $RUN_MANILA_SHRINK_TESTS
# Disable multi_tenancy tests.
iniset $TEMPEST_CONFIG share multitenancy_enabled False
# CephFS does not yet suppport cloning of snapshots required to create Manila
# shares from snapshots.
# Disable snapshot tests
RUN_MANILA_SNAPSHOT_TESTS=${RUN_MANILA_SNAPSHOT_TESTS:-False}
iniset $TEMPEST_CONFIG share run_snapshot_tests $RUN_MANILA_SNAPSHOT_TESTS
# Enable consistency group tests.
RUN_MANILA_CG_TESTS=${RUN_MANILA_CG_TESTS:-True}
iniset $TEMPEST_CONFIG share run_consistency_group_tests $RUN_MANILA_CG_TESTS
# Let us control if we die or not.
set +o errexit
cd $BASE/new/tempest
# Check whether tempest plugin was installed correctly.
echo 'import pkg_resources; print list(pkg_resources.iter_entry_points("tempest.test_plugins"))' | python
# Workaround for Tempest architectural changes
# See bugs:
# 1) https://bugs.launchpad.net/manila/+bug/1531049
# 2) https://bugs.launchpad.net/tempest/+bug/1524717
ADMIN_TENANT_NAME=${ADMIN_TENANT_NAME:-"admin"}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-"secretadmin"}
iniset $TEMPEST_CONFIG auth admin_username ${ADMIN_USERNAME:-"admin"}
iniset $TEMPEST_CONFIG auth admin_password $ADMIN_PASSWORD
iniset $TEMPEST_CONFIG auth admin_tenant_name $ADMIN_TENANT_NAME
iniset $TEMPEST_CONFIG auth admin_domain_name ${ADMIN_DOMAIN_NAME:-"Default"}
iniset $TEMPEST_CONFIG identity username ${TEMPEST_USERNAME:-"demo"}
iniset $TEMPEST_CONFIG identity password $ADMIN_PASSWORD
iniset $TEMPEST_CONFIG identity tenant_name ${TEMPEST_TENANT_NAME:-"demo"}
iniset $TEMPEST_CONFIG identity alt_username ${ALT_USERNAME:-"alt_demo"}
iniset $TEMPEST_CONFIG identity alt_password $ADMIN_PASSWORD
iniset $TEMPEST_CONFIG identity alt_tenant_name ${ALT_TENANT_NAME:-"alt_demo"}
iniset $TEMPEST_CONFIG validation ip_version_for_ssh 4
iniset $TEMPEST_CONFIG validation ssh_timeout $BUILD_TIMEOUT
iniset $TEMPEST_CONFIG validation network_for_ssh ${PRIVATE_NETWORK_NAME:-"private"}
echo "Running tempest manila test suites"
if [[ $MANILA_TEST_TYPE == 'api' ]]; then
export MANILA_TESTS='manila_tempest_tests.tests.api'
elif [[ $MANILA_TEST_TYPE == 'scenario' ]]; then
export MANILA_TESTS='manila_tempest_tests.tests.scenario'
fi
export MANILA_TEMPEST_CONCURRENCY=${MANILA_TEMPEST_CONCURRENCY:-12}
sudo -H -u jenkins tox -eall-plugin $MANILA_TESTS -- --concurrency=$MANILA_TEMPEST_CONCURRENCY

66
manila/pre_test_hook.sh Normal file
View File

@@ -0,0 +1,66 @@
#!/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.
# Import devstack function 'trueorfalse'.
source $BASE/new/devstack/functions
# === Handle script arguments ===
# Handle script arguments as detailed here in the manila CI job template,
# https://github.com/openstack-infra/project-config/commit/6ae99cee70a33d6cc312a7f9a83aa6db8b39ce21
# First argument specifies the type of share driver -- whether the driver
# handles or does not handle share servers -- to be configured. It is a boolean
# value, 'True' for driver that handles share servers, and 'False' for driver
# that does not.
MANILA_DHSS=1ドル
MANILA_DHSS=$(trueorfalse False MANILA_DHSS)
# Second argument specifies the type of cephfs driver to be set up. Currently,
# 'cephfsnative' is the only option.
MANILA_CEPH_DRIVER=2ドル
MANILA_CEPH_DRIVER=${MANILA_CEPH_DRIVER:-cephfsnative}
# Third argument specifies the type of backend configuration. It can either be
# 'singlebackend' or 'multiplebackend'.
MANILA_BACKEND_TYPE=3ドル
MANILA_BACKEND_TYPE=${MANILA_BACKEND_TYPE:-singlebackend}
if [[ $MANILA_BACKEND_TYPE == 'multibackend' ]]; then
echo "MANILA_MULTI_BACKEND=True" >> $localrc_path
elif [[ $MANILA_BACKEND_TYPE == 'singlebackend' ]]; then
echo "MANILA_MULTI_BACKEND=False" >> $localrc_path
fi
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
# Enable isolated metadata in Neutron because Tempest creates isolated
# networks and created VMs in scenario tests don't have access to Nova Metadata
# service. This leads to unavailability of created VMs in scenario tests.
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.
cd $BASE/new/tempest
# Import to set $MANILA_TEMPEST_COMMIT.
source $BASE/new/manila/contrib/ci/common.sh
git checkout $MANILA_TEMPEST_COMMIT
# Print current Tempest status.
git status
Reference in New Issue
openstack/devstack-plugin-ceph
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.

The note is not visible to the blocked user.