Merge "kubernetes_utils: avoid 404 error code in delete_custom_resource_definition()"
[yardstick.git] / ansible / build_yardstick_image.yml
index 7f70987..072c12c 100644 (file)
@@ -30,6 +30,9 @@
 
     workspace: "{{ lookup('env', 'workspace')|default('/tmp/workspace/yardstick', true) }}"
     raw_imgfile_basename: "yardstick-{{ release }}-server.raw"
+    growpart_package:
+      RedHat: cloud-utils-growpart
+      Debian: cloud-guest-utils
   environment:
     - PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
     - "{{ proxy_env }}"
@@ -39,6 +42,8 @@
         key: image_builder
 
     - package: name=parted state=present
+    - package: name=kpartx state=present
+    - package: name="{{ growpart_package[ansible_os_family] }}" state=present
 
     - set_fact:
         imgfile: "{{ normal_image_file }}"
@@ -54,7 +59,7 @@
     - set_fact:
         raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
 
-  # cleanup non-lxd
+    # cleanup non-lxd
     - name: unmount all old mount points
       mount:
         name: "{{ item }}"
       command: kpartx -dv "{{ raw_imgfile }}"
       ignore_errors: true
 
+    - name: Debug dump loop devices
+      command: losetup -a
+      ignore_errors: true
+
+    - name: delete loop devices for image file
+      # use this because kpartx -dv will fail if raw_imgfile was delete
+      # but in theory we could have deleted file still attached to loopback device?
+      # use grep because of // and awk
+      shell: losetup -O NAME,BACK-FILE | grep "{{ raw_imgfile_basename }}" | awk '{ print $1 }' | xargs -l1 losetup -v -d
+      ignore_errors: true
+
+    - name: Debug dump loop devices again
+      command: losetup -a
+      ignore_errors: true
+
     - name: delete {{ raw_imgfile }}
       file:
         path: "{{ raw_imgfile }}"
       command: "qemu-img resize -f raw {{ raw_imgfile }} +2G"
 
     - name: resize parition to allow for more VNFs
-      command: "parted -s -a optimal {{ raw_imgfile }} resizepart 1 100%"
+      # use growpart because maybe it handles GPT better than parted
+      command: growpart {{ raw_imgfile }}  1
 
     - name: create mknod devices in chroot
       command: "mknod -m 0660 /dev/loop{{ item }} b 7 {{ item }}"
       tags: mknod_devices
 
     - name: find first partition device
-#      command: kpartx -l "{{ loop_device }}"
       command: kpartx -l "{{ raw_imgfile }}"
       register: kpartx_res