[PATCHv3 1/2] Tear down all devices after finding existing installations
Vratislav Podzimek
vpodzime at redhat.com
Wed Jul 1 08:27:10 UTC 2015
When trying to find existing installations we setup and mount devices (to check
if they have /etc/fstab). Setting a device up results in its parents being setup
too (recursively) so when done we need to tear all/rest of the devices down so
that they are not left activated as that could cause problems later (as for
example in the bug where a thin pool was activated/setup on setup of a thin LV
and never deactivated/torn down).
Resolves: rhbz#1182229
Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
blivet/__init__.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/blivet/__init__.py b/blivet/__init__.py
index 47cb1dd..7cb1228 100644
--- a/blivet/__init__.py
+++ b/blivet/__init__.py
@@ -2979,7 +2979,14 @@ def getReleaseString():
return (relArch, relName, relVer)
-def findExistingInstallations(devicetree):
+def findExistingInstallations(devicetree, teardown_all=True):
+ """Find existing GNU/Linux installations on devices from the devicetree.
+ :param devicetree: devicetree to find existing installations in
+ :type devicetree: :class:`~.devicetree.DeviceTree`
+ :param bool teardown_all: whether to tear down all devices in the
+ devicetree in the end
+
+ """
if not os.path.exists(getTargetPhysicalRoot()):
util.makedirs(getTargetPhysicalRoot())
@@ -3027,6 +3034,9 @@ def findExistingInstallations(devicetree):
continue
roots.append(Root(mounts=mounts, swaps=swaps, name=name))
+ if teardown_all:
+ devicetree.teardownAll()
+
return roots
class Root(object):
--
2.1.0
More information about the anaconda-patches
mailing list