[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