コード例 #1
0
ファイル: test__ped_ped.py プロジェクト: carlroth/pyparted
    def runTest(self):
        for f in ["boot", "root", "swap", "hidden", "raid", "lvm", "lba",
                  "hp-service", "palo", "prep", "msftres", "bios_grub",
                  "msftdata", "irst", "esp", "nonfs"]:
            self.assertNotEqual(_ped.partition_flag_get_by_name(f), "", "Could not get flag %s" % f)

        self.assertEqual(_ped.partition_flag_get_by_name("nosuchflag"), 0)
コード例 #2
0
    def runTest(self):
        for f in ["boot", "root", "swap", "hidden", "raid", "lvm", "lba",
                  "hp-service", "palo", "prep", "msftres", "bios_grub",
                  "msftdata", "irst", "esp"]:
            self.assertNotEqual(_ped.partition_flag_get_by_name(f), "", "Could not get flag %s" % f)

        self.assertEqual(_ped.partition_flag_get_by_name("nosuchflag"), 0)
コード例 #3
0
    def restore_from_file(self, disk):
        """ """
        with open(self.file_path, 'r') as f:
            layout = list()
            partitions = cPickle.load(f)
            for p in partitions:
                geometry = parted.geometry.Geometry(device=disk.device,
                                                    start=p.start,
                                                    length=p.length,
                                                    end=p.end)

                p_fs = None
                if p.fs is not None:
                    p_fs = parted.filesystem.FileSystem(type = p.fs,
                                                        geometry = geometry)

                partition = parted.partition.Partition(disk=disk,
                                                       type=p.type,
                                                       geometry=geometry,
                                                       fs=p_fs)

                if p.flags != "swap" and p.flags != '':
                    partition.setFlag(partition_flag_get_by_name(p.flags))
                layout.append(partition)

            disk.deleteAllPartitions()
            constraint = parted.Constraint(device=disk.device)
            for p in layout:
                disk.addPartition(p, constraint)

            disk.commitToDevice()
            disk.commitToOS()
            self._wait_devices(disk)
コード例 #4
0
    def restore_from_file(self, disk, expand=False):
        """ """
        
        #Desativa o alinhamento automatico
        disk.unsetFlag(parted.DISK_CYLINDER_ALIGNMENT)
        
        with open(self.file_path, 'r') as f:
            layout = list()
            partitions = cPickle.load(f)
            for p in partitions:
                geometry = parted.geometry.Geometry(device=disk.device,
                                                    start=p.start,
                                                    length=p.length,
                                                    end=p.end)

                p_fs = None
                if p.fs is not None:
                    p_fs = parted.filesystem.FileSystem(type = p.fs,
                                                        geometry = geometry)

                partition = parted.partition.Partition(disk=disk,
                                                       type=p.type,
                                                       geometry=geometry,
                                                       fs=p_fs)



                if p.flags != "swap" and p.flags != '':
                    partition.setFlag(partition_flag_get_by_name(p.flags))
                layout.append(partition)

            disk.deleteAllPartitions()
            constraint = parted.Constraint(device=disk.device)
            last_partition = len(layout)
            for n, p in enumerate(layout, 1):
                disk.addPartition(p, constraint)

                # Expand last partition
                if last_partition == n:
                    if expand:
                        if p.type == parted.PARTITION_NORMAL:
                            max_geometry = disk.calculateMaxPartitionGeometry(
                                           p, constraint)
                            new_geometry = parted.Geometry(geometry.device,
                                                          start=geometry.start,
                                                          end=max_geometry.end)
 
                            result = disk.setPartitionGeometry(p,
                                                       constraint,
                                                       new_geometry.start,
                                                       new_geometry.end)
                            if not result:
                                raise ExpandingPartitionError("Extending" + \
                                                          "partition failed.")

            disk.commitToDevice()
            disk.commitToOS()
            self._wait_devices(disk)
コード例 #5
0
    def restore_from_file(self, disk, expand=False):
        """ """
        with open(self.file_path, 'r') as f:
            layout = list()
            partitions = cPickle.load(f)
            for p in partitions:
                geometry = parted.geometry.Geometry(device=disk.device,
                                                    start=p.start,
                                                    length=p.length,
                                                    end=p.end)

                p_fs = None
                if p.fs is not None:
                    p_fs = parted.filesystem.FileSystem(type=p.fs,
                                                        geometry=geometry)

                partition = parted.partition.Partition(disk=disk,
                                                       type=p.type,
                                                       geometry=geometry,
                                                       fs=p_fs)

                if p.flags != "swap" and p.flags != '':
                    partition.setFlag(partition_flag_get_by_name(p.flags))
                layout.append(partition)

            disk.deleteAllPartitions()
            constraint = parted.Constraint(device=disk.device)
            last_partition = len(layout)
            for n, p in enumerate(layout, 1):
                disk.addPartition(p, constraint)

                # Expand last partition
                if last_partition == n:
                    if expand:
                        if p.type == parted.PARTITION_NORMAL:
                            max_geometry = disk.calculateMaxPartitionGeometry(
                                p, constraint)
                            new_geometry = parted.Geometry(
                                geometry.device,
                                start=geometry.start,
                                end=max_geometry.end)

                            result = disk.setPartitionGeometry(
                                p, constraint, new_geometry.start,
                                new_geometry.end)
                            if not result:
                                raise ExpandingPartitionError("Extending" + \
                                                          "partition failed.")

            disk.commitToDevice()
            disk.commitToOS()
            self._wait_devices(disk)