[master 1/1] Allow to set partition flags

alexanderlaw installerbot-noreply at redhat.com
Tue Mar 10 13:32:01 UTC 2015


From: Alexander Lakhin <exclusion at gmail.com>

---
 blivet/devices/partition.py | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
index 5cccf4e..822e7ca 100644
--- a/blivet/devices/partition.py
+++ b/blivet/devices/partition.py
@@ -65,7 +65,7 @@ def __init__(self, name, fmt=None,
                  size=None, grow=False, maxsize=None, start=None, end=None,
                  major=None, minor=None, bootable=None,
                  sysfsPath='', parents=None, exists=False,
-                 partType=None, primary=False, weight=0):
+                 partType=None, primary=False, weight=0, partFlags=None):
         """
             :param name: the device name (generally a device node's basename)
             :type name: str
@@ -124,6 +124,7 @@ def __init__(self, name, fmt=None,
         self.req_name = None
 
         self._bootable = False
+        self.req_flags = None
 
         StorageDevice.__init__(self, name, fmt=fmt, size=size,
                                major=major, minor=minor, exists=exists,
@@ -191,6 +192,8 @@ def __init__(self, name, fmt=None,
             self.req_start_sector = start
             self.req_end_sector = end
 
+            self.req_flags = partFlags
+
     def __repr__(self):
         s = StorageDevice.__repr__(self)
         s += ("  grow = %(grow)s  max size = %(maxsize)s  bootable = %(bootable)s\n"
@@ -576,6 +579,23 @@ def _postCreate(self):
         log.debug("post-commit partition path is %s", getattr(partition,
                                                              "path", None))
         self.partedPartition = partition
+
+        if self.req_flags:
+            for flag, set_val in self.req_flags.iteritems():
+                flag_number = _ped.partition_flag_get_by_name(flag)
+                if flag_number > 0:
+                    if self.flagAvailable(flag_number):
+                        if set_val:
+                            self.setFlag(flag_number)
+                        else:
+                            self.unsetFlag(flag_number)
+                    else:
+                        log.error("Flag (%s) not available "
+                                    "for this partition" % flag)
+                else:
+                    log.error("Partition flag (%s) not recognized." % flag)
+            self.disk.format.commit()
+
         if not self.isExtended:
             # Ensure old metadata which lived in freespace so did not get
             # explictly destroyed by a destroyformat action gets wiped


-- 
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/4f14f876210c1fee12e24c929f18b931020cc5cc


More information about the anaconda-patches mailing list