Merge "Fix linters error and enable linters zuul gate"

This commit is contained in:
Zuul 2018-08-31 20:43:11 +00:00 committed by Gerrit Code Review
commit cd467e2ebd
4 changed files with 96 additions and 97 deletions

View File

@ -3,8 +3,8 @@
check:
jobs:
- openstack-tox-pep8
- openstack-tox-linters
gate:
jobs:
- openstack-tox-pep8
- openstack-tox-linters

View File

@ -4,17 +4,16 @@
#
# SPDX-License-Identifier: Apache-2.0
#
backup_dir="/opt/backups"
tmp_dir="${backup_dir}/image_temp"
function usage {
cat <<"EOF"
cat <<"EOF"
Helper tool for backing up Glance images
Usage:
image-backup export <uuid> - export the image with <uuid> into backup file /opt/backups/image_<uuid>.tgz
image-backup import image_<uuid>.tgz - import the image from the backup source file at /opt/backups/image_<uuid>.tgz
into the corresponding image.
image-backup export <uuid> - export the image with <uuid> into backup file /opt/backups/image_<uuid>.tgz
image-backup import image_<uuid>.tgz - import the image from the backup source file at /opt/backups/image_<uuid>.tgz
into the corresponding image.
Temporary files are stored in /opt/backups/image_temp
@ -23,22 +22,22 @@ EOF
}
function create_tmp {
if [ ! -d ${backup_dir} ]; then
echo "Error: backup directory ${backup_dir} does not exist"
exit 1
fi
# Create temporary directory
if [ ! -d ${tmp_dir} ]; then
mkdir ${tmp_dir}
fi
if [ ! -d ${backup_dir} ]; then
echo "Error: backup directory ${backup_dir} does not exist"
exit 1
fi
# Create temporary directory
if [ ! -d ${tmp_dir} ]; then
mkdir ${tmp_dir}
fi
}
function remove_tmp {
# Remove temporary files and directory if not empty
local uuid=$1
rm -f ${tmp_dir}/${uuid}*
rmdir --ignore-fail-on-non-empty ${tmp_dir} &>/dev/null
# Remove temporary files and directory if not empty
local uuid=$1
rm -f ${tmp_dir}/${uuid}*
rmdir --ignore-fail-on-non-empty ${tmp_dir} &>/dev/null
}
function export_file_from_rbd_image {
@ -56,9 +55,9 @@ function export_image {
# Check if the corresponding image is present in the RBD pool
rbd -p images ls | grep -q -e "^${uuid}$"
if [ $? -ne 0 ]; then
echo "Error: Corresponding file for image with id: ${uuid} was not found in the RBD images pool"
remove_tmp; exit 1
fi
echo "Error: Corresponding file for image with id: ${uuid} was not found in the RBD images pool"
remove_tmp; exit 1
fi
# Export original image
export_file_from_rbd_image ${uuid}
@ -66,21 +65,21 @@ function export_image {
# Export raw cache if present
rbd -p images ls | grep -q ${uuid}_raw
if [ $? -eq 0 ]; then
export_file_from_rbd_image ${uuid}_raw
export_file_from_rbd_image ${uuid}_raw
raw="${uuid}_raw"
fi
echo -n "Creating backup archive..."
archive="${backup_dir}/image_${uuid}.tgz"
tar czf ${archive} -C ${tmp_dir} ${uuid} ${raw}
if [ $? -ne 0 ]; then
echo "Error: Failed to create archive ${archive}"
remove_tmp; exit 1
else
echo "Error: Failed to create archive ${archive}"
remove_tmp; exit 1
else
echo "done"
fi
echo "Backup archive ${archive} created"
echo "Backup archive ${archive} created"
}
function import_file_to_rbd_image {
@ -88,17 +87,17 @@ function import_file_to_rbd_image {
local snap="images/${file}@snap"
rbd import --image-format 2 ${tmp_dir}/${file} images/${file}
if [ $? -ne 0 ]; then
echo "Error: Failed to import image ${file} into Ceph images pool, please check status of storage cluster"
echo "Error: Failed to import image ${file} into Ceph images pool, please check status of storage cluster"
remove_tmp; exit 1
fi
rbd snap create ${snap} 1>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to create snapshot ${snap}, please check status of storage cluster"
echo "Error: Failed to create snapshot ${snap}, please check status of storage cluster"
remove_tmp; exit 1
fi
rbd snap protect ${snap} 1>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to protect snapshot ${snap}, please check status of storage cluster"
echo "Error: Failed to protect snapshot ${snap}, please check status of storage cluster"
remove_tmp; exit 1
fi
}
@ -108,15 +107,15 @@ function import_image {
# Storage cluster must be healthy before starting the import
if [ ! "$(ceph health)" = "HEALTH_OK" ]; then
echo "Error: The storage cluster health must be HEALTH_OK before proceding"
remove_tmp; exit 1
echo "Error: The storage cluster health must be HEALTH_OK before proceding"
remove_tmp; exit 1
fi
# Check if the corresponding image is already present in the RBD pool
rbd -p images ls | grep -q -e "^${uuid}$"
if [ $? -eq 0 ]; then
echo "Error: Image with id: ${uuid} is already imported"
remove_tmp; exit 1
echo "Error: Image with id: ${uuid} is already imported"
remove_tmp; exit 1
fi
# Import original image
@ -124,17 +123,16 @@ function import_image {
# Import raw cache
if [ -f "${tmp_dir}/${uuid}_raw" ]; then
import_file_to_rbd_image ${uuid}_raw
import_file_to_rbd_image ${uuid}_raw
fi
}
if [ $EUID -ne 0 ]; then
echo "This script must be executed as root"
exit 1
echo "This script must be executed as root"
exit 1
fi
if [ $# -ne 2 ] ;
then
if [ $# -ne 2 ]; then
usage
exit 0
fi
@ -144,69 +142,68 @@ source /etc/nova/openrc
# Check if glance is using ceph as RBD
cat /etc/glance/glance-api.conf | grep -q -e "^stores.*=.*rbd"
if [ $? -ne 0 ]; then
echo "Error: Glance is not configured to use the ceph backend."
echo "This command should be used only on setups with configured Ceph storage."
exit 1
echo "Error: Glance is not configured to use the ceph backend."
echo "This command should be used only on setups with configured Ceph storage."
exit 1
fi
if [ "$1" = "export" ]; then
# Check that glance image is present in glance
glance image-list | tail -n +3 | awk '{print $2}' | grep -q $2
if [ $? -ne 0 ]; then
echo "Error: Glance image with id: $2 not found. Please try with an existing image id."
remove_tmp; exit 1
fi
# Check that glance image is present in glance
glance image-list | tail -n +3 | awk '{print $2}' | grep -q $2
if [ $? -ne 0 ]; then
echo "Error: Glance image with id: $2 not found. Please try with an existing image id."
remove_tmp; exit 1
fi
# Only allow backup of images that use rbd as backend.
glance image-show $2 | grep 'direct_url' | awk '{print $4}' | grep -q '^rbd://'
if [ $? -ne 0 ]; then
echo "Image with id: $2 is not stored in Ceph RBD. Backup using image-backup tool is not needed."
echo "Please consult the Software Management Manual for more details."
remove_tmp; exit 1
fi
# Only allow backup of images that use rbd as backend.
glance image-show $2 | grep 'direct_url' | awk '{print $4}' | grep -q '^rbd://'
if [ $? -ne 0 ]; then
echo "Image with id: $2 is not stored in Ceph RBD. Backup using image-backup tool is not needed."
echo "Please consult the Software Management Manual for more details."
remove_tmp; exit 1
fi
create_tmp
export_image $2
remove_tmp
create_tmp
export_image $2
remove_tmp
elif [ "$1" = "import" ]; then
# Check that the input file format is correct
if [[ ! $2 =~ ^image_.*\.tgz$ ]]; then
echo "Error: Source file name must conform to image_<uuid>.tgz format"
exit 1
fi
# Check that the source file exists
if [ ! -f ${backup_dir}/$2 ]; then
echo "Error: File $2 does not exists in ${backup_dir}"
exit 1
fi
# Check that the input file format is correct
if [[ ! $2 =~ ^image_.*\.tgz$ ]]; then
echo "Error: Source file name must conform to image_<uuid>.tgz format"
exit 1
fi
# Get glance uuid from filename
uuid=$(echo $2 | sed "s/^image_\(.*\)\.tgz/\1/g")
# Check that the source file exists
if [ ! -f ${backup_dir}/$2 ]; then
echo "Error: File $2 does not exists in ${backup_dir}"
exit 1
fi
# Check that glance has this image in the database
glance image-list | grep -q $uuid
if [ $? -ne 0 ]; then
echo "Error: Glance image with id: ${uuid} not found. Please try with an existing image id."
exit 1
fi
# Get glance uuid from filename
uuid=$(echo $2 | sed "s/^image_\(.*\)\.tgz/\1/g")
create_tmp
# Check that glance has this image in the database
glance image-list | grep -q $uuid
if [ $? -ne 0 ]; then
echo "Error: Glance image with id: ${uuid} not found. Please try with an existing image id."
exit 1
fi
# Extract the files that need to be imported into the temp directory
echo -n "Extracting files..."
tar xfz ${backup_dir}/$2 -C ${tmp_dir} 1>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to extract archive ${backup_dir}/$2 into ${tmp_dir}."
remove_tmp; exit 1
fi
echo "done"
create_tmp
# Importing images into RBD
import_image $uuid
remove_tmp
# Extract the files that need to be imported into the temp directory
echo -n "Extracting files..."
tar xfz ${backup_dir}/$2 -C ${tmp_dir} 1>/dev/null
if [ $? -ne 0 ]; then
echo "Error: Failed to extract archive ${backup_dir}/$2 into ${tmp_dir}."
remove_tmp; exit 1
fi
echo "done"
# Importing images into RBD
import_image $uuid
remove_tmp
else
usage
usage
fi

View File

@ -38,7 +38,7 @@ find /mnt/huge-1048576kB/|xargs ls -ld >> ${logfile} 2>> ${logfile}
echo "Locked smaps" >> ${logfile}
echo "------------" >> ${logfile}
grep Locked: /proc/*/smaps 2>/dev/null| awk '($2 > 0) {a[$1]+=$2} END {for (i in a) print i,a[i]/1024.0, "MiB";}' >> ${logfile} 2>> ${logfile}
grep Locked: /proc/*/smaps 2>/dev/null | awk '($2 > 0) {a[$1]+=$2} END {for (i in a) print i,a[i]/1024.0, "MiB";}' >> ${logfile} 2>> ${logfile}
date '+%F %T' >> ${logfile} 2>> ${logfile}

10
tox.ini
View File

@ -14,6 +14,8 @@ deps = -r{toxinidir}/test-requirements.txt
[testenv:linters]
whitelist_externals = bash
#bashate ignore
#E006 Line too long
commands =
bash -c "find {toxinidir} \
-not \( -type d -name .?\* -prune \) \
@ -21,11 +23,11 @@ commands =
-not -name \*~ \
-not -name \*.md \
-name \*.sh \
-print0 | xargs -0 bashate -v"
-print0 | xargs -0 bashate -v -i E006"
bash -c "find {toxinidir} \
\( -name middleware/io-monitor/recipes-common/io-monitor/io-monitor/io_monitor/test-tools/yaml/* -prune \) \
-o \( -name .tox -prune \) \
-o -type f -name '*.yaml' \
\( -path '{toxinidir}/openstack/python-heat/python-heat/templates*' \
-o -path '{toxinidir}/.tox' \) -a -prune \
-o -name '*.yaml' \
-print0 | xargs -0 yamllint"
[testenv:pep8]