--- /dev/null
+---
+fixes:
+ - |
+ Multi-cloud image validation was not properly working as we force set the
+ OS_CLOUD environment variable before validation of images. This has been
+ rectified to dynamicaly modify the OS_CLOUD variable based upon the
+ cloud.cfg that will be used to define the cloud in Jenkins.
+ - |
+ We now validate that a cloud.cfg file exists for any defined OpenStack
+ cloud.
+ - |
+ Removes undocumented, and now unneeded, openstack-cloud variable from the
+ jenkins-cfg-verify job definition
error=false
-for file in jenkins-config/clouds/openstack/*/*; do
- # Set the $IMAGE_NAME variable to the the file's IMAGE_NAME value
- export "$(grep ^IMAGE_NAME= "$file")"
- # The image should be listed as active
+verify_images()
+{
+ echo "Verifying images on $1"
+ for file in "$1"/*; do
+ # Set the $IMAGE_NAME variable to the the file's IMAGE_NAME value
+ export "$(grep ^IMAGE_NAME= "$file")"
+ # The image should be listed as active
- if ! openstack image list --property name="$IMAGE_NAME" | grep "active"; then
- echo "ERROR: No matching image found for $IMAGE_NAME"
- error=true
- fi
- # Set the $HARDWARE_ID variable to the the file's HARDWARE_ID value
- export "$(grep ^HARDWARE_ID= "$file")"
- # The flavor should be listed. Spaces in grep string ensure complete match.
+ if ! openstack image list --property name="$IMAGE_NAME" | grep "active"; then
+ echo "ERROR: No matching image found for $IMAGE_NAME"
+ error=true
+ fi
+ # Set the $HARDWARE_ID variable to the the file's HARDWARE_ID value
+ export "$(grep ^HARDWARE_ID= "$file")"
+ # The flavor should be listed. Spaces in grep string ensure complete match.
+
+ if ! openstack flavor list | grep " $HARDWARE_ID "; then
+ echo "ERROR: No matching flavor found for $HARDWARE_ID"
+ error=true
+ fi
+ done
+}
+
+for cloud in jenkins-config/clouds/openstack/*; do
+ echo "Verifying that cloud has a master configuration file"
+ # Verify that we have a cloud config file
+ if [ -f "$cloud/cloud.cfg" ]; then
+ # Get the OS_CLOUD variable from cloud config and export it
+ OS_CLOUD=$(grep ^CLOUD_CREDENTIAL_ID= "$cloud/cloud.cfg" | cut -d'=' -f2)
+ export OS_CLOUD
- if ! openstack flavor list | grep " $HARDWARE_ID "; then
- echo "ERROR: No matching flavor found for $HARDWARE_ID"
+ verify_images "$cloud"
+ else
+ echo "ERROR: No cloud.cfg for $cloud"
error=true
fi
done