|
...
|
...
|
@@ -1362,18 +1362,42 @@ function upload_image() {
|
|
1362
|
1362
|
|
|
1363
|
1363
|
# Before we can upload vmdk type images to glance, we need to know it's
|
|
1364
|
1364
|
# disk type, storage adapter, and networking adapter. These values are
|
|
1365
|
|
- # passed to glance as custom properties. We take these values from the
|
|
|
1365
|
+ # passed to glance as custom properties.
|
|
|
1366
|
+ # We take these values from the vmdk file if populated. Otherwise, we use
|
|
1366
|
1367
|
# vmdk filename, which is expected in the following format:
|
|
1367
|
1368
|
#
|
|
1368
|
1369
|
# <name>-<disk type>:<storage adapter>:<network adapter>
|
|
1369
|
1370
|
#
|
|
1370
|
1371
|
# If the filename does not follow the above format then the vsphere
|
|
1371
|
1372
|
# driver will supply default values.
|
|
|
1373
|
+
|
|
|
1374
|
+ # vmdk adapter type
|
|
|
1375
|
+ vmdk_adapter_type="$(head -25 $IMAGE | grep -a -F -m 1 'ddb.adapterType =' $IMAGE)"
|
|
|
1376
|
+ vmdk_adapter_type="${vmdk_adapter_type#*\"}"
|
|
|
1377
|
+ vmdk_adapter_type="${vmdk_adapter_type%?}"
|
|
|
1378
|
+
|
|
|
1379
|
+ # vmdk disk type
|
|
|
1380
|
+ vmdk_create_type="$(head -25 $IMAGE | grep -a -F -m 1 'createType=' $IMAGE)"
|
|
|
1381
|
+ vmdk_create_type="${vmdk_create_type#*\"}"
|
|
|
1382
|
+ vmdk_create_type="${vmdk_create_type%?}"
|
|
|
1383
|
+ if [[ "$vmdk_create_type" = "monolithicSparse" ]]; then
|
|
|
1384
|
+ vmdk_disktype="sparse"
|
|
|
1385
|
+ elif [[ "$vmdk_create_type" = "monolithicFlat" ]]; then
|
|
|
1386
|
+ die $LINENO "Monolithic flat disks should use a descriptor-data pair." \
|
|
|
1387
|
+ "Please provide the disk and not the descriptor."
|
|
|
1388
|
+ else
|
|
|
1389
|
+ #TODO(alegendre): handle streamOptimized once supported by VMware driver.
|
|
|
1390
|
+ vmdk_disktype="preallocated"
|
|
|
1391
|
+ fi
|
|
1372
|
1392
|
property_string=`echo "$IMAGE_NAME" | grep -oP '(?<=-)(?!.*-).+:.+:.+$'`
|
|
1373
|
1393
|
if [[ ! -z "$property_string" ]]; then
|
|
1374
|
1394
|
IFS=':' read -a props <<< "$property_string"
|
|
1375
|
|
- vmdk_disktype="${props[0]}"
|
|
1376
|
|
- vmdk_adapter_type="${props[1]}"
|
|
|
1395
|
+ if [[ ! -z "${props[0]}" ]]; then
|
|
|
1396
|
+ vmdk_disktype="${props[0]}"
|
|
|
1397
|
+ fi
|
|
|
1398
|
+ if [[ ! -z "${props[1]}" ]]; then
|
|
|
1399
|
+ vmdk_adapter_type="${props[1]}"
|
|
|
1400
|
+ fi
|
|
1377
|
1401
|
vmdk_net_adapter="${props[2]}"
|
|
1378
|
1402
|
fi
|
|
1379
|
1403
|
|