disk: remove unused functions
Remove functions that got obsoleted by the more generic, entity based, ones: - `FindPartitionForMountpoint` - `BootPartitionIndex` - `FindFilesystemForMountpoint` - `RootFilesystem` - `BootFilesystem` Co-Authored-By: Achilleas Koutsou <achilleas@koutsou.net>
This commit is contained in:
parent
908b62ae08
commit
beaf411628
2 changed files with 0 additions and 127 deletions
|
|
@ -122,39 +122,6 @@ var canonicalPartitionTable = PartitionTable{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDisk_ForEachFilesystem(t *testing.T) {
|
|
||||||
rootFs := canonicalPartitionTable.Partitions[3].Payload
|
|
||||||
bootFs := canonicalPartitionTable.Partitions[2].Payload
|
|
||||||
efiFs := canonicalPartitionTable.Partitions[1].Payload
|
|
||||||
|
|
||||||
// check we iterate in the correct order and throughout the whole array
|
|
||||||
var expectedFilesystems []*Filesystem
|
|
||||||
err := canonicalPartitionTable.ForEachFilesystem(func(fs *Filesystem) error {
|
|
||||||
expectedFilesystems = append(expectedFilesystems, fs)
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
|
|
||||||
assert.NoError(t, err)
|
|
||||||
assert.Equal(t, []*Filesystem{efiFs, bootFs, rootFs}, expectedFilesystems)
|
|
||||||
|
|
||||||
// check we stop iterating when the callback returns false
|
|
||||||
expectedFilesystems = make([]*Filesystem, 0)
|
|
||||||
err = canonicalPartitionTable.ForEachFilesystem(func(fs *Filesystem) error {
|
|
||||||
if fs.Mountpoint != "/boot" {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// we should stop at boot, never reaching root
|
|
||||||
assert.NotEqual(t, fs.Mountpoint, "/")
|
|
||||||
|
|
||||||
expectedFilesystems = append(expectedFilesystems, fs)
|
|
||||||
return StopIter
|
|
||||||
})
|
|
||||||
|
|
||||||
assert.NoError(t, err)
|
|
||||||
assert.Equal(t, []*Filesystem{bootFs}, expectedFilesystems)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDisk_ForEachEntity(t *testing.T) {
|
func TestDisk_ForEachEntity(t *testing.T) {
|
||||||
|
|
||||||
count := 0
|
count := 0
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package disk
|
package disk
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
|
||||||
|
|
@ -104,105 +103,12 @@ func (pt *PartitionTable) SectorsToBytes(size uint64) uint64 {
|
||||||
return size * sectorSize
|
return size * sectorSize
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pt *PartitionTable) FindPartitionForMountpoint(mountpoint string) *Partition {
|
|
||||||
for idx, p := range pt.Partitions {
|
|
||||||
if p.Payload == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if p.Payload.Mountpoint == mountpoint {
|
|
||||||
return &pt.Partitions[idx]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the index of the boot partition: the partition whose filesystem has
|
|
||||||
// /boot as a mountpoint. If there is no explicit boot partition, the root
|
|
||||||
// partition is returned.
|
|
||||||
// If neither boot nor root partitions are found, returns -1.
|
|
||||||
func (pt *PartitionTable) BootPartitionIndex() int {
|
|
||||||
// find partition with '/boot' mountpoint and fallback to '/'
|
|
||||||
rootIdx := -1
|
|
||||||
for idx, part := range pt.Partitions {
|
|
||||||
if part.Payload == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if part.Payload.Mountpoint == "/boot" {
|
|
||||||
return idx
|
|
||||||
} else if part.Payload.Mountpoint == "/" {
|
|
||||||
rootIdx = idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return rootIdx
|
|
||||||
}
|
|
||||||
|
|
||||||
// StopIter is used as a return value from iterator function to indicate
|
|
||||||
// the iteration should not continue. Not an actual error and thus not
|
|
||||||
// returned by iterator function.
|
|
||||||
var StopIter = errors.New("stop the iteration")
|
|
||||||
|
|
||||||
// ForEachFileSystemFunc is a type of function called by ForEachFilesystem
|
|
||||||
// to iterate over every filesystem in the partition table.
|
|
||||||
//
|
|
||||||
// If the function returns an error, the iteration stops.
|
|
||||||
type ForEachFileSystemFunc func(fs *Filesystem) error
|
|
||||||
|
|
||||||
// Iterates over all filesystems in the partition table and calls the
|
|
||||||
// callback on each one. The iteration continues as long as the callback
|
|
||||||
// does not return an error.
|
|
||||||
func (pt *PartitionTable) ForEachFilesystem(cb ForEachFileSystemFunc) error {
|
|
||||||
for _, part := range pt.Partitions {
|
|
||||||
if part.Payload == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cb(part.Payload); err != nil {
|
|
||||||
if err == StopIter {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the Filesystem instance for a given mountpoint, if it exists.
|
|
||||||
func (pt *PartitionTable) FindFilesystemForMountpoint(mountpoint string) *Filesystem {
|
|
||||||
var res *Filesystem
|
|
||||||
_ = pt.ForEachFilesystem(func(fs *Filesystem) error {
|
|
||||||
if fs.Mountpoint == mountpoint {
|
|
||||||
res = fs
|
|
||||||
return StopIter
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns if the partition table contains a filesystem with the given
|
// Returns if the partition table contains a filesystem with the given
|
||||||
// mount point.
|
// mount point.
|
||||||
func (pt *PartitionTable) ContainsMountpoint(mountpoint string) bool {
|
func (pt *PartitionTable) ContainsMountpoint(mountpoint string) bool {
|
||||||
return len(entityPath(pt, mountpoint)) > 0
|
return len(entityPath(pt, mountpoint)) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the Filesystem instance that corresponds to the root
|
|
||||||
// filesystem, i.e. the filesystem whose mountpoint is '/'.
|
|
||||||
func (pt *PartitionTable) RootFilesystem() *Filesystem {
|
|
||||||
return pt.FindFilesystemForMountpoint("/")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the Filesystem instance that corresponds to the boot
|
|
||||||
// filesystem, i.e. the filesystem whose mountpoint is '/boot',
|
|
||||||
// if /boot is on a separate partition, otherwise nil
|
|
||||||
func (pt *PartitionTable) BootFilesystem() *Filesystem {
|
|
||||||
return pt.FindFilesystemForMountpoint("/boot")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a new filesystem within the partition table at the given mountpoint
|
// Create a new filesystem within the partition table at the given mountpoint
|
||||||
// with the given minimum size in bytes.
|
// with the given minimum size in bytes.
|
||||||
func (pt *PartitionTable) CreateFilesystem(mountpoint string, size uint64) error {
|
func (pt *PartitionTable) CreateFilesystem(mountpoint string, size uint64) error {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue