From 87cf1bcec4b5d01e666d13f8648c99629d96750c Mon Sep 17 00:00:00 2001 From: David Lehman Date: Mon, 6 Aug 2012 10:18:55 -0500 Subject: [PATCH 07/21] Add a method to produce a deep copy of a Storage instance. --- pyanaconda/storage/__init__.py | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/pyanaconda/storage/__init__.py b/pyanaconda/storage/__init__.py index c8c2730..f73ee58 100644 --- a/pyanaconda/storage/__init__.py +++ b/pyanaconda/storage/__init__.py @@ -26,6 +26,7 @@ import stat import errno import sys import statvfs +import copy import nss.nss import parted @@ -2077,6 +2078,20 @@ class Storage(object): fmt_args=fmt_args) self.createDevice(device) + def copy(self): + new = copy.deepcopy(self) + # go through and re-get partedPartitions from the disks since they + # don't get deep-copied + for partition in new.partitions: + if not partition._partedPartition: + continue + + p = partition.disk.format.partedDisk.getPartitionByPath(partition.path) + partition.partedPartition = p + + return new + + def mountExistingSystem(fsset, rootEnt, allowDirty=None, dirtyCB=None, readOnly=None): -- 1.7.7.6