From: "Samantha N. Bueno" sbueno+anaconda@redhat.com
Move ignored_disks, exclusive_disks, and disk_images from StorageDiscoveryConfig to Blivet class. This allows us to isolate our dependence upon StorageDiscoveryConfig so we can later move it into blivet.osinstall.
Update the devicetree function headers to take in these newly-moved attrs. With this, we break devicetree dependence upon StorageDiscoveryConfig.
Also update populator function headers to take in newly-moved attr. With this, we also break populator dependence upon StorageDiscoveryConfig. --- blivet/blivet.py | 35 +++++++++++++++++++---------------- blivet/devicetree.py | 36 ++++++++++++++++++++++-------------- blivet/populator/populator.py | 14 +++++++------- 3 files changed, 48 insertions(+), 37 deletions(-)
diff --git a/blivet/blivet.py b/blivet/blivet.py index 5d360dc..aefb410 100644 --- a/blivet/blivet.py +++ b/blivet/blivet.py @@ -79,14 +79,11 @@ class StorageDiscoveryConfig(object): def __init__(self): # storage configuration variables self.ignore_disk_interactive = False - self.ignored_disks = [] - self.exclusive_disks = [] self.clear_part_type = None self.clear_part_disks = [] self.clear_part_devices = [] self.initialize_disks = False self.protected_dev_specs = [] - self.disk_images = {} self.zero_mbr = False
# Whether clear_partitions removes scheduled/non-existent devices and @@ -99,8 +96,6 @@ def update(self, ksdata): :param ksdata: kickstart data used as data source :type ksdata: :class:`pykickstart.Handler` """ - self.ignored_disks = ksdata.ignoredisk.ignoredisk[:] - self.exclusive_disks = ksdata.ignoredisk.onlyuse[:] self.clear_part_type = ksdata.clearpart.type self.clear_part_disks = ksdata.clearpart.drives[:] self.clear_part_devices = ksdata.clearpart.devices[:] @@ -135,6 +130,10 @@ def __init__(self, ksdata=None): self.autopart_requests = [] self.edd_dict = {}
+ self.ignored_disks = [] + self.exclusive_disks = [] + self.disk_images = {} + self.__luks_devs = {} self.size_sets = [] self.set_default_fstype(get_default_filesystem_type()) @@ -144,9 +143,11 @@ def __init__(self, ksdata=None): self._dump_file = "%s/storage.state" % tempfile.gettempdir()
# these will both be empty until our reset method gets called - self.devicetree = DeviceTree(conf=self.config, - passphrase=self.encryption_passphrase, - luks_dict=self.__luks_devs) + self.devicetree = DeviceTree(passphrase=self.encryption_passphrase, + luks_dict=self.__luks_devs, + ignored_disks=self.ignored_disks, + exclusive_disks=self.exclusive_disks, + disk_images=self.disk_images) self.fsset = FSSet(self.devicetree) self.roots = [] self.services = set() @@ -266,9 +267,11 @@ def reset(self, cleanup_only=False): fcoe.startup() zfcp.startup()
- self.devicetree.reset(conf=self.config, - passphrase=self.encryption_passphrase, - luks_dict=self.__luks_devs) + self.devicetree.reset(passphrase=self.encryption_passphrase, + luks_dict=self.__luks_devs, + ignored_disks=self.ignored_disks, + exclusive_disks=self.exclusive_disks, + disk_images=self.disk_images) self.devicetree.populate(cleanup_only=cleanup_only) self.fsset = FSSet(self.devicetree) self.edd_dict = get_edd_dict(self.partitioned) @@ -1330,7 +1333,7 @@ def save_passphrase(self, device): self.devicetree.save_luks_passphrase(device)
def setup_disk_images(self): - self.devicetree.set_disk_images(self.config.disk_images) + self.devicetree.set_disk_images(self.disk_images) self.devicetree.setup_disk_images()
@property @@ -1749,10 +1752,10 @@ def update_ksdata(self): # bootloader
# ignoredisk - if self.config.ignored_disks: - self.ksdata.ignoredisk.drives = self.config.ignored_disks[:] - elif self.config.exclusive_disks: - self.ksdata.ignoredisk.onlyuse = self.config.exclusive_disks[:] + if self.ignored_disks: + self.ksdata.ignoredisk.drives = self.ignored_disks[:] + elif self.exclusive_disks: + self.ksdata.ignoredisk.onlyuse = self.exclusive_disks[:]
# autopart self.ksdata.autopart.autopart = self.do_autopart diff --git a/blivet/devicetree.py b/blivet/devicetree.py index 832dce5..c8db437 100644 --- a/blivet/devicetree.py +++ b/blivet/devicetree.py @@ -69,15 +69,23 @@ class DeviceTreeBase(object, metaclass=SynchronizedMeta): :class:`~.deviceaction.DeviceAction` instances can only be registered for leaf devices, except for resize actions. """ - def __init__(self, conf=None): + def __init__(self, ignored_disks=None, exclusive_disks=None): """ - :keyword conf: storage discovery configuration - :type conf: :class:`~.StorageDiscoveryConfig` + :keyword ignored_disks: ignored disks + :type ignored_disks: list + :keyword exclusive_disks: exclusive didks + :type exclusive_disks: list """ - self.reset(conf) + self.reset(ignored_disks, exclusive_disks)
- def reset(self, conf=None): - """ Reset the instance to its initial state. """ + def reset(self, ignored_disks=None, exclusive_disks=None): + """ Reset the instance to its initial state. + + :keyword ignored_disks: ignored disks + :type ignored_disks: list + :keyword exclusive_disks: exclusive didks + :type exclusive_disks: list + """ # internal data members self._devices = [] self._actions = ActionList(addfunc=self._register_action, @@ -90,8 +98,8 @@ def reset(self, conf=None):
lvm.lvm_cc_resetFilter()
- self.exclusive_disks = getattr(conf, "exclusive_disks", []) - self.ignored_disks = getattr(conf, "ignored_disks", []) + self.exclusive_disks = exclusive_disks + self.ignored_disks = ignored_disks
self.edd_dict = {}
@@ -882,12 +890,12 @@ def _hide_ignored_disks(self):
class DeviceTree(DeviceTreeBase, PopulatorMixin, EventHandlerMixin): - def __init__(self, conf=None, passphrase=None, luks_dict=None): - DeviceTreeBase.__init__(self, conf=conf) - PopulatorMixin.__init__(self, conf=conf, passphrase=passphrase, luks_dict=luks_dict) + def __init__(self, passphrase=None, luks_dict=None, ignored_disks=None, exclusive_disks=None, disk_images=None): + DeviceTreeBase.__init__(self, ignored_disks=ignored_disks, exclusive_disks=exclusive_disks) + PopulatorMixin.__init__(self, passphrase=passphrase, luks_dict=luks_dict, disk_images=disk_images) EventHandlerMixin.__init__(self)
# pylint: disable=arguments-differ - def reset(self, conf=None, passphrase=None, luks_dict=None): - DeviceTreeBase.reset(self, conf=conf) - PopulatorMixin.reset(self, conf=conf, passphrase=passphrase, luks_dict=luks_dict) + def reset(self, passphrase=None, luks_dict=None, ignored_disks=None, exclusive_disks=None, disk_images=None): + DeviceTreeBase.reset(self, ignored_disks=ignored_disks, exclusive_disks=exclusive_disks) + PopulatorMixin.reset(self, passphrase=passphrase, luks_dict=luks_dict, disk_images=disk_images) diff --git a/blivet/populator/populator.py b/blivet/populator/populator.py index 816c226..54fd53e 100644 --- a/blivet/populator/populator.py +++ b/blivet/populator/populator.py @@ -63,23 +63,23 @@ def parted_exn_handler(exn_type, exn_options, exn_msg):
class PopulatorMixin(object, metaclass=SynchronizedMeta): - def __init__(self, conf=None, passphrase=None, luks_dict=None): + def __init__(self, passphrase=None, luks_dict=None, disk_images=None): """ - :keyword conf: storage discovery configuration - :type conf: :class:`~.StorageDiscoveryConfig` :keyword passphrase: default LUKS passphrase :keyword luks_dict: a dict with UUID keys and passphrase values :type luks_dict: dict + :keyword disk_images: dictoinary of disk images + :type list: dict
""" - self.reset(conf=conf, passphrase=passphrase, luks_dict=luks_dict) + self.reset(passphrase=passphrase, luks_dict=luks_dict, disk_images=disk_images)
def reset(self, conf=None, passphrase=None, luks_dict=None): + def reset(self, passphrase=None, luks_dict=None, disk_images=None): self.disk_images = {} - images = getattr(conf, "disk_images", {}) - if images: + if disk_images: # this will overwrite self.exclusive_disks - self.set_disk_images(images) + self.set_disk_images(disk_images)
# protected device specs as provided by the user self.protected_dev_specs = getattr(conf, "protected_dev_specs", [])
anaconda-patches@lists.fedorahosted.org