d30297b7d4
Flavor added in 79c679683d
fails in
at least stable/wallaby neutron-ovn-tempest-slow job, as the flavor
already exists.
This checks if a flavor with this name already exists before trying to
create it
Change-Id: I624f53e39c4bcdd988900aca375ee5e4ddd445fe
Related-Bug: #1940243
100 lines
2.9 KiB
Bash
100 lines
2.9 KiB
Bash
# Generic use functions
|
|
|
|
# ensure we don't re-source this in the same environment
|
|
[[ -z "$_NEUTRON_TEMPEST_PLUGIN_FUNCTIONS" ]] || return 0
|
|
declare -r -g _NEUTRON_TEMPEST_PLUGIN_FUNCTIONS=1
|
|
|
|
# Create a function copying the code from an existing one
|
|
function save_function {
|
|
local old_name=$1
|
|
local new_name=$2
|
|
|
|
# Saving the same function again after redefining it could produce a
|
|
# recorsive function in case for example this plugin is sourced twice
|
|
if type -t "${new_name}"; then
|
|
# Prevent copying the same function twice
|
|
return 0
|
|
fi
|
|
|
|
# Save xtrace setting
|
|
_XTRACE_FUNCTIONS=$(set +o | grep xtrace)
|
|
set +o xtrace
|
|
|
|
# Get code of the original function
|
|
local old_code=$(declare -f ${old_name})
|
|
# Produce code for the new function
|
|
local new_code="${new_name}${old_code#${old_name}}"
|
|
# Define the new function
|
|
eval "${new_code}"
|
|
|
|
# Restore xtrace
|
|
$_XTRACE_FUNCTIONS
|
|
}
|
|
|
|
#Add advanced image config to tempest.conf
|
|
function configure_advanced_image {
|
|
local advanced_image_uuid
|
|
|
|
if ! is_service_enabled glance; then
|
|
# if glance is not enabled, there is no image for to configure
|
|
return 0
|
|
fi
|
|
|
|
if [[ -z "$ADVANCED_IMAGE_NAME" ]]; then
|
|
# if name of advanced image is not provided, there is no image to
|
|
# configure
|
|
return 0
|
|
fi
|
|
|
|
while read -r IMAGE_NAME IMAGE_UUID; do
|
|
if [ "$IMAGE_NAME" = "$ADVANCED_IMAGE_NAME" ]; then
|
|
advanced_image_uuid="$IMAGE_UUID"
|
|
break
|
|
fi
|
|
done < <(openstack image list --property status=active | awk -F'|' '!/^(+--)|ID|aki|ari/ { print $3,$2 }')
|
|
|
|
if [[ -z "$advanced_image_uuid" ]]; then
|
|
echo "No image with name $ADVANCED_IMAGE_NAME found."
|
|
return 1
|
|
fi
|
|
|
|
iniset $TEMPEST_CONFIG neutron_plugin_options advanced_image_ref $advanced_image_uuid
|
|
iniset $TEMPEST_CONFIG neutron_plugin_options advanced_image_ssh_user $ADVANCED_INSTANCE_USER
|
|
}
|
|
|
|
|
|
function configure_flavor_for_advanced_image {
|
|
local flavor_ref
|
|
|
|
if ! is_service_enabled nova; then
|
|
# if nova is not enabled, there is no flavor to configure
|
|
return 0
|
|
fi
|
|
|
|
if [[ -z "$ADVANCED_INSTANCE_TYPE" ]]; then
|
|
# if name of flavor for advanced image is not provided, there is no
|
|
# flavor to configure
|
|
return 0
|
|
fi
|
|
|
|
flavor_ref=$(openstack flavor show $ADVANCED_INSTANCE_TYPE -f value -c id)
|
|
if [[ -z "$flavor_ref" ]]; then
|
|
echo "Found no valid flavors to use for $ADVANCED_IMAGE_NAME !"
|
|
echo "Fallback to use $DEFAULT_INSTANCE_TYPE"
|
|
flavor_ref=$(iniget $TEMPEST_CONFIG compute flavor_ref)
|
|
fi
|
|
iniset $TEMPEST_CONFIG neutron_plugin_options advanced_image_flavor_ref $flavor_ref
|
|
}
|
|
|
|
|
|
function create_flavor_for_advance_image {
|
|
local name=$1
|
|
local ram=$2
|
|
local disk=$3
|
|
local vcpus=$4
|
|
|
|
if [[ -z $(openstack flavor list | grep $name) ]]; then
|
|
openstack flavor create --ram $ram --disk $disk --vcpus $vcpus $name
|
|
fi
|
|
}
|