resdiskvg

package
v3.0.0-rc49 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2026 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New() resource.Driver

Types

type T

type T struct {
	resdisk.T
	Path    naming.Path
	VGName  string   `json:"vg"`
	Size    string   `json:"size"`
	Options []string `json:"options"`
	PVs     []string `json:"pvs"`
}

func (*T) Boot

func (t *T) Boot(ctx context.Context) error

func (*T) ClaimedDevices

func (t *T) ClaimedDevices(ctx context.Context) device.L

func (*T) CurrentFree

func (t *T) CurrentFree(ctx context.Context) (int64, error)

CurrentFree implements resource.Freer.

func (*T) CurrentSize

func (t *T) CurrentSize(ctx context.Context) (int64, error)

CurrentSize implements resource.Sizer.

func (*T) DriverID

func (t *T) DriverID() driver.ID

func (*T) ExposedDevices

func (t *T) ExposedDevices(ctx context.Context) device.L

func (*T) ImportDevices

func (t *T) ImportDevices(ctx context.Context) error

func (*T) Info

func (t *T) Info(ctx context.Context) (resource.InfoKeys, error)

func (*T) Label

func (t *T) Label(_ context.Context) string

Label implements Label from resource.Driver interface, it returns a formatted short description of the Resource

func (*T) Manifest

func (t *T) Manifest() *manifest.T

Manifest exposes to the core the input expected by the driver.

func (*T) ProvisionAsFollower

func (t *T) ProvisionAsFollower(ctx context.Context) error

func (*T) ProvisionAsLeader

func (t *T) ProvisionAsLeader(ctx context.Context) error

func (*T) Provisioned

func (t *T) Provisioned(ctx context.Context) (provisioned.T, error)

func (*T) ReservableDevices

func (t *T) ReservableDevices(ctx context.Context) device.L

func (*T) Resize

func (t *T) Resize(ctx context.Context, to int64) error

Resize implements resource.Resizer.

Growing takes the whole device, which the plan made sure is large enough. Shrinking sets the physical volume size explicitly, which lvm refuses if extents beyond it are in use.

func (*T) ResizePlan

func (t *T) ResizePlan(ctx context.Context, to int64) (int64, error)

ResizePlan implements resource.Resizer.

A volume group offers its logical volumes less than its physical volumes hold, by the metadata lvm keeps and by what does not fill a whole extent. What it asks of the device below is the size wanted plus what it is short today, which over-asks by at most one extent and never under-asks.

func (*T) ResizeProvides

func (t *T) ResizeProvides(_ context.Context) string

ResizeProvides implements resource.ResizeProvides, so the logical volumes of this group find it: no device leads from one to the other.

func (*T) ResizeSpansBelow

func (t *T) ResizeSpansBelow() bool

ResizeSpansBelow implements resource.ResizeSpansBelow.

A volume group takes up the physical volume it is created on, keeping a cut of it for its own metadata and for what does not fill a whole extent.

func (*T) Start

func (t *T) Start(ctx context.Context) error

func (*T) Status

func (t *T) Status(ctx context.Context) status.T

func (*T) Stop

func (t *T) Stop(ctx context.Context) error

func (*T) SubDevices

func (t *T) SubDevices(ctx context.Context) device.L

func (*T) UnprovisionAsLeader

func (t *T) UnprovisionAsLeader(ctx context.Context) error

func (*T) VolumeGroupName

func (t *T) VolumeGroupName() string

VolumeGroupName is the name of the volume group, by which a check of its usage is attributed to the object.

type VGDriver

type VGDriver interface {
	Activate(context.Context) error
	Deactivate(context.Context) error
	IsActive(context.Context) (bool, error)
	Exists(context.Context) (bool, error)
	FQN() string
	Devices(context.Context) (device.L, error)
	PVs(context.Context) (device.L, error)
	ActiveLVDevices() (device.L, error)
	DriverName() string
	AddTag(context.Context, string) error
	DelTag(context.Context, string) error
	HasTag(context.Context, string) (bool, error)
	Tags(context.Context) ([]string, error)
	GetLVSummary(context.Context) (lvm2.LVSummary, error)
	NeedActivate(lvm2.LVSummary) bool
}

type VGDriverImportDeviceser

type VGDriverImportDeviceser interface {
	ImportDevices(context.Context) error
}

type VGDriverProvisioner

type VGDriverProvisioner interface {
	Create(context.Context, string, []string, []string) error
}

type VGDriverResizer

type VGDriverResizer interface {
	Size(context.Context) (int64, error)
	Free(context.Context) (int64, error)
	ExtentSize(context.Context) (int64, error)
	ResizePV(context.Context, string, int64) error
}

type VGDriverUnprovisioner

type VGDriverUnprovisioner interface {
	Remove(context.Context, []string) error
}

type VGDriverWiper

type VGDriverWiper interface {
	Wipe(context.Context) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL