[PATCH 07/21] Add a method to produce a deep copy of a Storage instance.

David Lehman dlehman at redhat.com
Thu Aug 9 19:28:26 UTC 2012


---
 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



More information about the anaconda-patches mailing list