devserver: Make quick provision handle /dev/sdaX partitions.

BUG=chromium:785083
TEST=build=auron_paine-paladin/R64-10083.0.0-rc2; curl "http://${ds}/stage?archive_url=gs://chromeos-image-archive/${build}&artifacts=quick_provision,stateful"; curl "http://${ds}/cros_au?full_update=False&force_update=True&build_name=${build}&host_name=${dut}&async=False&clobber_stateful=True&quick_provision=True"

Change-Id: If3336413a9b13dad427f33dc538df0a097cd0221
Reviewed-on: https://chromium-review.googlesource.com/772833
Commit-Ready: David Riley <davidriley@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/quick-provision/quick-provision b/quick-provision/quick-provision
index 6ad6145..c32227e 100644
--- a/quick-provision/quick-provision
+++ b/quick-provision/quick-provision
@@ -185,6 +185,7 @@
   local root_disk="$(rootdev -s -d)"
   info "Current root ${current_root}, disk ${root_disk}"
 
+  # Handle both /dev/mmcblk0pX and /dev/sdaX style partitions.
   if [[ "${current_root#${root_disk}}" == "p${PARTITION_NUM_ROOT_A}" ]]; then
     NEXT_KERN_PART="${PARTITION_NUM_KERN_B}"
     NEXT_KERN="${root_disk}p${NEXT_KERN_PART}"
@@ -193,6 +194,14 @@
     NEXT_KERN_PART="${PARTITION_NUM_KERN_A}"
     NEXT_KERN="${root_disk}p${NEXT_KERN_PART}"
     NEXT_ROOT="${root_disk}p${PARTITION_NUM_ROOT_A}"
+  elif [[ "${current_root#${root_disk}}" == "${PARTITION_NUM_ROOT_A}" ]]; then
+    NEXT_KERN_PART="${PARTITION_NUM_KERN_B}"
+    NEXT_KERN="${root_disk}${NEXT_KERN_PART}"
+    NEXT_ROOT="${root_disk}${PARTITION_NUM_ROOT_B}"
+  elif [[ "${current_root#${root_disk}}" == "${PARTITION_NUM_ROOT_B}" ]]; then
+    NEXT_KERN_PART="${PARTITION_NUM_KERN_A}"
+    NEXT_KERN="${root_disk}${NEXT_KERN_PART}"
+    NEXT_ROOT="${root_disk}${PARTITION_NUM_ROOT_A}"
   else
     error "Unexpected root partition ${current_root}"
     exit 1