diff --git a/functions b/functions index 17c6e77e3d..80f98adfb2 100644 --- a/functions +++ b/functions @@ -199,7 +199,21 @@ function upload_image { # and should not be decompressed prior to loading if [[ "$image_url" =~ '.vhd.tgz' ]]; then IMAGE_NAME="${IMAGE_FNAME%.vhd.tgz}" - glance --os-auth-token $token --os-image-url http://$GLANCE_HOSTPORT image-create --name "$IMAGE_NAME" --is-public=True --container-format=ovf --disk-format=vhd < "${IMAGE}" + FORCE_VM_MODE="" + if [[ "$IMAGE_NAME" =~ 'cirros' ]]; then + # Cirros VHD image currently only boots in PV mode. + # Nova defaults to PV for all VHD images, but + # the glance setting is needed for booting + # directly from volume. + FORCE_VM_MODE="--property vm_mode=xen" + fi + glance \ + --os-auth-token $token \ + --os-image-url http://$GLANCE_HOSTPORT \ + image-create \ + --name "$IMAGE_NAME" --is-public=True \ + --container-format=ovf --disk-format=vhd \ + $FORCE_VM_MODE < "${IMAGE}" return fi