lvmthin

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func New

func New(c HTTPClient) *Client

func (*Client) Create

func (c *Client) Create(ctx context.Context, req CreateRequest) (string, error)

Create Create an LVM thinpool

func (*Client) Delete

func (c *Client) Delete(ctx context.Context, req DeleteRequest) (string, error)

Delete Remove an LVM thin pool.

func (*Client) Index

func (c *Client) Index(ctx context.Context, req IndexRequest) ([]IndexResponse, error)

Index List LVM thinpools

type CreateRequest

type CreateRequest struct {
	Device string `url:"device" json:"device"` // The block device you want to create the thinpool on.
	Name   string `url:"name" json:"name"`     // The storage identifier.
	Node   string `url:"node" json:"node"`     // The cluster node name.

	// The following parameters are optional
	AddStorage *util.PVEBool `url:"add_storage,omitempty" json:"add_storage,omitempty"` // Configure storage using the thinpool.
}

type DeleteRequest

type DeleteRequest struct {
	Name        string `url:"name" json:"name"`                 // The storage identifier.
	Node        string `url:"node" json:"node"`                 // The cluster node name.
	VolumeGroup string `url:"volume-group" json:"volume-group"` // The storage identifier.

	// The following parameters are optional
	CleanupConfig *util.PVEBool `url:"cleanup-config,omitempty" json:"cleanup-config,omitempty"` // Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).
	CleanupDisks  *util.PVEBool `url:"cleanup-disks,omitempty" json:"cleanup-disks,omitempty"`   // Also wipe disks so they can be repurposed afterwards.
}

type HTTPClient

type HTTPClient interface {
	Do(context.Context, string, string, interface{}, interface{}) error
}

type IndexRequest

type IndexRequest struct {
	Node string `url:"node" json:"node"` // The cluster node name.

}

type IndexResponse

type IndexResponse struct {
	Lv           string `url:"lv" json:"lv"`                       // The name of the thinpool.
	LvSize       int    `url:"lv_size" json:"lv_size"`             // The size of the thinpool in bytes.
	MetadataSize int    `url:"metadata_size" json:"metadata_size"` // The size of the metadata lv in bytes.
	MetadataUsed int    `url:"metadata_used" json:"metadata_used"` // The used bytes of the metadata lv.
	Used         int    `url:"used" json:"used"`                   // The used bytes of the thinpool.
	Vg           string `url:"vg" json:"vg"`                       // The associated volume group.

}

Jump to

Keyboard shortcuts

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