22#
33# stackrc
44#
5+
6+ # ensure we don't re-source this in the same environment
7+ [[ -z " $_DEVSTACK_STACKRC " ]] || return 0
8+ declare -r _DEVSTACK_STACKRC=1
9+
510# Find the other rc files
611RC_DIR=$( cd $( dirname " ${BASH_SOURCE:- $0 } " ) && pwd)
712
@@ -560,40 +565,47 @@ CIRROS_ARCH=${CIRROS_ARCH:-"x86_64"}
560565# Set default image based on ``VIRT_DRIVER`` and ``LIBVIRT_TYPE``, either of
561566# which may be set in ``local.conf``. Also allow ``DEFAULT_IMAGE_NAME`` and
562567# ``IMAGE_URLS`` to be set in the `localrc` section of ``local.conf``.
563- case " $VIRT_DRIVER " in
564- openvz)
565- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- ubuntu-12.04-x86_64}
566- IMAGE_URLS=${IMAGE_URLS:- " http://download.openvz.org/template/precreated/ubuntu-12.04-x86_64.tar.gz" } ;;
567- libvirt)
568- case " $LIBVIRT_TYPE " in
569- lxc) # the cirros root disk in the uec tarball is empty, so it will not work for lxc
570- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -rootfs}
571- IMAGE_URLS=${IMAGE_URLS:- " http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -rootfs.img.gz" } ;;
572- * ) # otherwise, use the uec style image (with kernel, ramdisk, disk)
573- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec}
574- IMAGE_URLS=${IMAGE_URLS:- " http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec.tar.gz" } ;;
575- esac
576- ;;
577- vsphere)
578- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-0.3.2-i386-disk.vmdk}
579- IMAGE_URLS=${IMAGE_URLS:- " http://partnerweb.vmware.com/programs/vmdkimage/cirros-0.3.2-i386-disk.vmdk" } ;;
580- xenserver)
581- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-0.3.4-x86_64-disk}
582- IMAGE_URLS=${IMAGE_URLS:- " http://ca.downloads.xensource.com/OpenStack/cirros-0.3.4-x86_64-disk.vhd.tgz" }
583- IMAGE_URLS+=" ,http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -x86_64-uec.tar.gz" ;;
584- ironic)
585- # Ironic can do both partition and full disk images, depending on the driver
586- if [[ " $IRONIC_DEPLOY_DRIVER " == " agent_ssh" ]]; then
587- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -x86_64-disk}
588- else
589- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -x86_64-uec}
590- fi
591- IMAGE_URLS=${IMAGE_URLS:- " http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -x86_64-uec.tar.gz" }
592- IMAGE_URLS+=" ,http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -x86_64-disk.img" ;;
593- * ) # Default to Cirros with kernel, ramdisk and disk image
594- DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec}
595- IMAGE_URLS=${IMAGE_URLS:- " http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec.tar.gz" } ;;
596- esac
568+ DOWNLOAD_DEFAULT_IMAGES=$( trueorfalse True DOWNLOAD_DEFAULT_IMAGES)
569+ if [[ " $DOWNLOAD_DEFAULT_IMAGES " == " True" ]]; then
570+ if [ -n $IMAGE_URLS ]; then
571+ IMAGE_URLS+=" ,"
572+ fi
573+ case " $VIRT_DRIVER " in
574+ openvz)
575+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- ubuntu-12.04-x86_64}
576+ IMAGE_URLS+=" http://download.openvz.org/template/precreated/ubuntu-12.04-x86_64.tar.gz" ;;
577+ libvirt)
578+ case " $LIBVIRT_TYPE " in
579+ lxc) # the cirros root disk in the uec tarball is empty, so it will not work for lxc
580+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -rootfs}
581+ IMAGE_URLS+=" http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -rootfs.img.gz" ;;
582+ * ) # otherwise, use the uec style image (with kernel, ramdisk, disk)
583+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec}
584+ IMAGE_URLS+=" http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec.tar.gz" ;;
585+ esac
586+ ;;
587+ vsphere)
588+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-0.3.2-i386-disk.vmdk}
589+ IMAGE_URLS+=" http://partnerweb.vmware.com/programs/vmdkimage/cirros-0.3.2-i386-disk.vmdk" ;;
590+ xenserver)
591+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-0.3.4-x86_64-disk}
592+ IMAGE_URLS+=" http://ca.downloads.xensource.com/OpenStack/cirros-0.3.4-x86_64-disk.vhd.tgz"
593+ IMAGE_URLS+=" ,http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -x86_64-uec.tar.gz" ;;
594+ ironic)
595+ # Ironic can do both partition and full disk images, depending on the driver
596+ if [[ " $IRONIC_DEPLOY_DRIVER " == " agent_ssh" ]]; then
597+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -x86_64-disk}
598+ else
599+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -x86_64-uec}
600+ fi
601+ IMAGE_URLS+=" http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -x86_64-uec.tar.gz"
602+ IMAGE_URLS+=" ,http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -x86_64-disk.img" ;;
603+ * ) # Default to Cirros with kernel, ramdisk and disk image
604+ DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:- cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec}
605+ IMAGE_URLS+=" http://download.cirros-cloud.net/${CIRROS_VERSION} /cirros-${CIRROS_VERSION} -${CIRROS_ARCH} -uec.tar.gz" ;;
606+ esac
607+ DOWNLOAD_DEFAULT_IMAGES=False
608+ fi
597609
598610# Staging Area for New Images, have them here for at least 24hrs for nodepool
599611# to cache them otherwise the failure rates in the gate are too high
@@ -606,6 +618,13 @@ if [[ "$PRECACHE_IMAGES" == "True" ]]; then
606618 fi
607619fi
608620
621+ # Detect duplicate values in IMAGE_URLS
622+ for image_url in ${IMAGE_URLS// ,/ } ; do
623+ if [ $( echo " $IMAGE_URLS " | grep -o -F " $image_url " | wc -l) -gt 1 ]; then
624+ die $LINENO " $image_url is duplicate, please remove it from IMAGE_URLS."
625+ fi
626+ done
627+
609628# 10Gb default volume backing file size
610629VOLUME_BACKING_FILE_SIZE=${VOLUME_BACKING_FILE_SIZE:- 10250M}
611630
0 commit comments