Bumps the go-deps group with 1 update in the / directory: [github.com/osbuild/images](https://github.com/osbuild/images). Updates `github.com/osbuild/images` from 0.80.0 to 0.81.0 - [Release notes](https://github.com/osbuild/images/releases) - [Commits](https://github.com/osbuild/images/compare/v0.80.0...v0.81.0) Updates `google.golang.org/api` from 0.194.0 to 0.195.0 - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.194.0...v0.195.0) --- updated-dependencies: - dependency-name: github.com/osbuild/images dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps ... Signed-off-by: dependabot[bot] <support@github.com>
95 lines
1.8 KiB
Go
95 lines
1.8 KiB
Go
package disk
|
|
|
|
import (
|
|
"math/rand"
|
|
"reflect"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// Filesystem related functions
|
|
type Filesystem struct {
|
|
Type string
|
|
// ID of the filesystem, vfat doesn't use traditional UUIDs, therefore this
|
|
// is just a string.
|
|
UUID string
|
|
Label string
|
|
Mountpoint string
|
|
// The fourth field of fstab(5); fs_mntops
|
|
FSTabOptions string
|
|
// The fifth field of fstab(5); fs_freq
|
|
FSTabFreq uint64
|
|
// The sixth field of fstab(5); fs_passno
|
|
FSTabPassNo uint64
|
|
}
|
|
|
|
func init() {
|
|
payloadEntityMap["filesystem"] = reflect.TypeOf(Filesystem{})
|
|
}
|
|
|
|
func (fs *Filesystem) EntityName() string {
|
|
return "filesystem"
|
|
}
|
|
|
|
// Clone the filesystem structure
|
|
func (fs *Filesystem) Clone() Entity {
|
|
if fs == nil {
|
|
return nil
|
|
}
|
|
|
|
return &Filesystem{
|
|
Type: fs.Type,
|
|
UUID: fs.UUID,
|
|
Label: fs.Label,
|
|
Mountpoint: fs.Mountpoint,
|
|
FSTabOptions: fs.FSTabOptions,
|
|
FSTabFreq: fs.FSTabFreq,
|
|
FSTabPassNo: fs.FSTabPassNo,
|
|
}
|
|
}
|
|
|
|
func (fs *Filesystem) GetMountpoint() string {
|
|
if fs == nil {
|
|
return ""
|
|
}
|
|
return fs.Mountpoint
|
|
}
|
|
|
|
func (fs *Filesystem) GetFSType() string {
|
|
if fs == nil {
|
|
return ""
|
|
}
|
|
return fs.Type
|
|
}
|
|
|
|
func (fs *Filesystem) GetFSSpec() FSSpec {
|
|
if fs == nil {
|
|
return FSSpec{}
|
|
}
|
|
return FSSpec{
|
|
UUID: fs.UUID,
|
|
Label: fs.Label,
|
|
}
|
|
}
|
|
|
|
func (fs *Filesystem) GetFSTabOptions() (FSTabOptions, error) {
|
|
if fs == nil {
|
|
return FSTabOptions{}, nil
|
|
}
|
|
return FSTabOptions{
|
|
MntOps: fs.FSTabOptions,
|
|
Freq: fs.FSTabFreq,
|
|
PassNo: fs.FSTabPassNo,
|
|
}, nil
|
|
}
|
|
|
|
func (fs *Filesystem) GenUUID(rng *rand.Rand) {
|
|
if fs.Type == "vfat" && fs.UUID == "" {
|
|
// vfat has no uuids, it has "serial numbers" (volume IDs)
|
|
fs.UUID = NewVolIDFromRand(rng)
|
|
return
|
|
}
|
|
if fs.UUID == "" {
|
|
fs.UUID = uuid.Must(newRandomUUIDFromReader(rng)).String()
|
|
}
|
|
}
|