Ejemplo n.º 1
0
    def _gather_mount_info(self):
        """Gather info about mount points."""
        selected_disks = self._disk_select_proxy.SelectedDisks
        requests = MountPointRequest.from_structure_list(
            self._manual_part_proxy.Requests)

        mount_info = []

        for device in self.storage.devicetree.leaves:
            # Is the device usable?
            if device.protected or device.size == Size(0):
                continue

            # All device's disks have to be in selected disks.
            device_disks = {d.name for d in device.disks}
            if selected_disks and not set(selected_disks).issuperset(
                    device_disks):
                continue

            # Append new info about this device.
            request = self._get_mount_point_request(device, requests)
            mount_info.append((device, request))

            # Use the data only once.
            if request in requests:
                requests.remove(request)

        return mount_info
Ejemplo n.º 2
0
    def SetRequests(self, requests: List[Structure]):
        """Set the mount point requests.

        :param requests: a list of requests
        """
        self.implementation.set_requests(
            MountPointRequest.from_structure_list(requests))
Ejemplo n.º 3
0
def configure_storage(storage, data=None, interactive=False):
    """Setup storage state from the kickstart data.

    :param storage: an instance of the Blivet's storage object
    :param data: an instance of kickstart data or None
    :param interactive: use a task for the interactive partitioning
    """
    auto_part_proxy = STORAGE.get_proxy(AUTO_PARTITIONING)
    manual_part_proxy = STORAGE.get_proxy(MANUAL_PARTITIONING)

    if interactive:
        task = InteractivePartitioningTask(storage)
    elif auto_part_proxy.Enabled:
        request = PartitioningRequest.from_structure(auto_part_proxy.Request)
        task = AutomaticPartitioningTask(storage, request)
    elif manual_part_proxy.Enabled:
        requests = MountPointRequest.from_structure_list(manual_part_proxy.Requests)
        task = ManualPartitioningTask(storage, requests)
    else:
        task = CustomPartitioningTask(storage, data)

    task.run()
Ejemplo n.º 4
0
 def _gather_requests(self):
     """Gather info about mount points."""
     return MountPointRequest.from_structure_list(
         self._partitioning.GatherRequests())