Martin Kolman 15b08d
From 07471d58ff89d97ed551a5bfbcbfdfe428849464 Mon Sep 17 00:00:00 2001
Martin Kolman 15b08d
From: David Lehman <dlehman@redhat.com>
Martin Kolman 15b08d
Date: Thu, 8 Mar 2018 11:43:31 -0500
Martin Kolman 15b08d
Subject: [PATCH 1/1] Mark partition live device's disk protected. (#1524700)
Martin Kolman 15b08d
Martin Kolman 15b08d
---
Martin Kolman 15b08d
 pyanaconda/storage/osinstall.py | 18 +++++++++++++-----
Martin Kolman 15b08d
 1 file changed, 13 insertions(+), 5 deletions(-)
Martin Kolman 15b08d
Martin Kolman 15b08d
diff --git a/pyanaconda/storage/osinstall.py b/pyanaconda/storage/osinstall.py
Martin Kolman 15b08d
index 435c723d9..8f34497e6 100644
Martin Kolman 15b08d
--- a/pyanaconda/storage/osinstall.py
Martin Kolman 15b08d
+++ b/pyanaconda/storage/osinstall.py
Martin Kolman 15b08d
@@ -1701,11 +1701,19 @@ class InstallerStorage(Blivet):
Martin Kolman 15b08d
             if " /run/initramfs/live " not in mnt:
Martin Kolman 15b08d
                 continue
Martin Kolman 15b08d
 
Martin Kolman 15b08d
-            live_device_name = mnt.split()[0].split("/")[-1]
Martin Kolman 15b08d
-            log.info("%s looks to be the live device; marking as protected",
Martin Kolman 15b08d
-                     live_device_name)
Martin Kolman 15b08d
-            self.protected_dev_names.append(live_device_name)
Martin Kolman 15b08d
-            self.live_backing_device = live_device_name
Martin Kolman 15b08d
+            live_device_path = mnt.split()[0]
Martin Kolman 15b08d
+            udev_device = udev.get_device(device_node=live_device_path)
Martin Kolman 15b08d
+            if udev_device and udev.device_is_partition(udev_device):
Martin Kolman 15b08d
+                live_device_name = udev.device_get_partition_disk(udev_device)
Martin Kolman 15b08d
+            else:
Martin Kolman 15b08d
+                live_device_name = live_device_path.split("/")[-1]
Martin Kolman 15b08d
+
Martin Kolman 15b08d
+            log.info("resolved live device to %s", live_device_name)
Martin Kolman 15b08d
+            if live_device_name:
Martin Kolman 15b08d
+                log.info("marking live device %s protected", live_device_name)
Martin Kolman 15b08d
+                self.protected_dev_names.append(live_device_name)
Martin Kolman 15b08d
+                self.live_backing_device = live_device_name
Martin Kolman 15b08d
+
Martin Kolman 15b08d
             break
Martin Kolman 15b08d
 
Martin Kolman 15b08d
     def _mark_protected_device(self, device):
Martin Kolman 15b08d
-- 
Martin Kolman 15b08d
2.14.3
Martin Kolman 15b08d