Browse code

make cloud images improvements:

* move vixdisklib target to the root Makefile
* use sgdisk to get PARTUUID if blkid failed

Change-Id: Ibd614487278569cafd9cb6fd9e5ee44be2a97dcf
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/1518
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: suezzelur <anishs@vmware.com>

Alexey Makhalov authored on 2016/10/14 03:31:31
Showing 7 changed files
... ...
@@ -60,6 +60,7 @@ endif
60 60
 
61 61
 TOOLS_BIN := $(SRCROOT)/tools/bin
62 62
 CONTAIN := $(TOOLS_BIN)/contain
63
+VIXDISKUTIL := $(TOOLS_BIN)/vixdiskutil
63 64
 
64 65
 .PHONY : all iso clean photon-build-machine photon-vagrant-build photon-vagrant-local cloud-image \
65 66
 check-tools check-docker check-bison check-g++ check-gawk check-createrepo check-vagrant check-packer check-packer-ovf-plugin check-sanity \
... ...
@@ -449,13 +450,13 @@ photon-vagrant-local: check-packer check-vagrant
449 449
 		echo "Unable to find $(PHOTON_STAGE)/photon-$(PHOTON_RELEASE_VERSION)-$(PHOTON_BUILD_NUMBER).iso ... aborting build"; \
450 450
 	fi
451 451
 
452
-cloud-image: $(PHOTON_STAGE) iso
452
+cloud-image: $(PHOTON_STAGE) $(VIXDISKUTIL) iso
453 453
 	@echo "Building cloud image $(IMG_NAME)..."
454 454
 	@cd $(PHOTON_CLOUD_IMAGE_BUILDER_DIR)
455 455
 	$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) $(IMG_NAME) $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE)/photon-$(PHOTON_RELEASE_VERSION)-$(PHOTON_BUILD_NUMBER).iso $(ADDITIONAL_RPMS_PATH)
456 456
 
457 457
 
458
-cloud-image-all: $(PHOTON_STAGE) iso
458
+cloud-image-all: $(PHOTON_STAGE) $(VIXDISKUTIL) iso
459 459
 	@echo "Building cloud images - gce, ami, azure and ova..."
460 460
 	@cd $(PHOTON_CLOUD_IMAGE_BUILDER_DIR)
461 461
 	$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) gce $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE)/photon-$(PHOTON_RELEASE_VERSION)-$(PHOTON_BUILD_NUMBER).iso $(ADDITIONAL_RPMS_PATH)
... ...
@@ -553,3 +554,7 @@ $(CONTAIN): $(TOOLS_BIN)
553 553
 	gcc -O2 -std=gnu99 -Wall -Wextra $(SRCROOT)/tools/src/contain/*.c -o $@_unpriv
554 554
 	sudo install -o root -g root -m 4755 $@_unpriv $@
555 555
 
556
+$(VIXDISKUTIL): $(TOOLS_BIN)
557
+	@cd $(SRCROOT)/tools/src/vixDiskUtil && \
558
+	make
559
+
... ...
@@ -73,6 +73,10 @@ rm -rf $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}
73 73
 mkdir $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}
74 74
 
75 75
 UUID_VALUE=$(blkid -s UUID -o value /dev/mapper/${DEVICE_NAME}p2)
76
+PARTUUID_VALUE=$(blkid -s PARTUUID -o value /dev/mapper/${DEVICE_NAME}p2)
77
+if [ -z "$PARTUUID" ] ; then
78
+  PARTUUID_VALUE=$(sgdisk -i 2 $DISK_DEVICE | grep "Partition unique GUID" | cut -d ' ' -f 4)
79
+fi
76 80
 
77 81
 mkdir -p $ISO_MOUNT_FOLDER
78 82
 mount -o loop $PHOTON_ISO_PATH $ISO_MOUNT_FOLDER
... ...
@@ -87,6 +91,7 @@ rm -f $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}/etc/machine-id
87 87
 touch $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}/etc/machine-id
88 88
 rm -f $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}/etc/fstab
89 89
 echo "UUID=$UUID_VALUE    /    ext4    defaults 1 1" >> $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}/etc/fstab
90
+sed -i "s/rootpartition=PARTUUID=$/rootpartition=PARTUUID=$PARTUUID_VALUE/" $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}/boot/grub/grub.cfg
90 91
 
91 92
 mkdir -p $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}/var/lib/cloud/seed/nocloud
92 93
 cat << EOF >> $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME}/var/lib/cloud/seed/nocloud/meta-data
... ...
@@ -64,7 +64,7 @@ fi
64 64
 #
65 65
 #	Install grub2.
66 66
 #
67
-UUID=$(blkid -s UUID -o value $ROOT_PARTITION_PATH)
67
+PARTUUID=$(blkid -s PARTUUID -o value $ROOT_PARTITION_PATH)
68 68
 BOOT_UUID=$(blkid -s UUID -o value $BOOT_PARTITION_PATH)
69 69
 
70 70
 
... ...
@@ -112,13 +112,13 @@ set theme=/boot/grub2/themes/photon/theme.txt
112 112
 menuentry "Photon" {
113 113
 	insmod ext2
114 114
     insmod part_gpt
115
-	linux /boot/vmlinuz-4.4.8 init=/lib/systemd/systemd root=UUID=UUID_PLACEHOLDER loglevel=3 ro
115
+	linux /boot/vmlinuz-4.4.8 init=/lib/systemd/systemd root=PARTUUID=UUID_PLACEHOLDER loglevel=3 ro
116 116
 	initrd /boot/initrd.img-no-kmods
117 117
 }
118 118
 # End /boot/grub2/grub.cfg
119 119
 EOF
120 120
 
121
-sed -i "s/UUID_PLACEHOLDER/$UUID/" "$BUILDROOT"/boot/grub2/grub.cfg > ${LOGFILE}	
121
+sed -i "s/UUID_PLACEHOLDER/$PARTUUID/" "$BUILDROOT"/boot/grub2/grub.cfg > ${LOGFILE}
122 122
 
123 123
 #Cleanup the workspace directory
124 124
 rm -rf "$BUILDROOT"/tools
... ...
@@ -13,10 +13,6 @@ sed "s|VMDK_IMAGE|$PHOTON_IMG_OUTPUT_PATH/photon-custom.vmdk|" vmx-template > /t
13 13
 
14 14
 cp ../update_custom_password.py $PHOTON_IMG_OUTPUT_PATH/
15 15
 
16
-cd $SRC_ROOT/tools/src/vixDiskUtil
17
-mkdir -p $SRC_ROOT/tools/bin
18
-make clean
19
-make
20 16
 $SRC_ROOT/tools/bin/vixdiskutil -convert $PHOTON_IMG_OUTPUT_PATH/photon-ova.raw -cap 16000 $PHOTON_IMG_OUTPUT_PATH/photon-ova.vmdk
21 17
 $SRC_ROOT/tools/bin/vixdiskutil -wmeta toolsVersion 2147483647 $PHOTON_IMG_OUTPUT_PATH/photon-ova.vmdk
22 18
 
... ...
@@ -13,10 +13,6 @@ sed "s|VMDK_IMAGE|$PHOTON_IMG_OUTPUT_PATH/photon-generic-custom.vmdk|" vmx-gener
13 13
 
14 14
 cp ../update_custom_password.py $PHOTON_IMG_OUTPUT_PATH/
15 15
 
16
-cd $SRC_ROOT/tools/src/vixDiskUtil
17
-mkdir -p $SRC_ROOT/tools/bin
18
-make clean
19
-make
20 16
 $SRC_ROOT/tools/bin/vixdiskutil -convert $PHOTON_IMG_OUTPUT_PATH/photon-ova_generic.raw -cap 16000 $PHOTON_IMG_OUTPUT_PATH/photon-generic-ova.vmdk
21 17
 $SRC_ROOT/tools/bin/vixdiskutil -wmeta toolsVersion 2147483647 $PHOTON_IMG_OUTPUT_PATH/photon-generic-ova.vmdk
22 18
 
... ...
@@ -9,11 +9,6 @@ sed "s|VMDK_IMAGE|$PHOTON_IMG_OUTPUT_PATH/photon-ova-ovs.vmdk|" vmx-ovs-template
9 9
 
10 10
 cp ../update_custom_password.py $PHOTON_IMG_OUTPUT_PATH/
11 11
 
12
-cd $SRC_ROOT/tools/src/vixDiskUtil
13
-mkdir -p $SRC_ROOT/tools/bin
14
-make clean
15
-make
16
-
17 12
 cd $PHOTON_IMG_OUTPUT_PATH
18 13
 
19 14
 DISK_DEVICE=`losetup --show -f ${PHOTON_IMG_OUTPUT_PATH}/photon-ova_ovs.raw`
... ...
@@ -7,11 +7,6 @@ rm -f $PHOTON_IMG_OUTPUT_PATH/*.vmdk
7 7
 rm -f $PHOTON_IMG_OUTPUT_PATH/*.ova
8 8
 sed "s|VMDK_IMAGE|$PHOTON_IMG_OUTPUT_PATH/photon-ova-uefi.vmdk|" vmx-uefi-template > /tmp/vmx-temp-uefi.vmx
9 9
 
10
-cd $SRC_ROOT/tools/src/vixDiskUtil
11
-mkdir -p $SRC_ROOT/tools/bin
12
-make clean
13
-make
14
-
15 10
 cd $PHOTON_IMG_OUTPUT_PATH
16 11
 
17 12
 DISK_DEVICE=`losetup --show -f ${PHOTON_IMG_OUTPUT_PATH}/photon-ova_uefi.raw`