blockdevice

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2021 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ParentDeviceLabel stores the parent device name of a device
	ParentDeviceLabel = "ndm.harvesterhci.io/parent-device"
	// DeviceTypeLabel indicates whether the device is a disk or a partition
	DeviceTypeLabel = "ndm.harvesterhci.io/device-type"
)

Variables

This section is empty.

Functions

func ConvertBlockDevicesToMap

func ConvertBlockDevicesToMap(bds []*diskv1.BlockDevice) map[string]*diskv1.BlockDevice

ConvertBlockDevicesToMap converts a BlockDeviceList to a map with GUID (Name) as keys.

func GetDiskBlockDevice

func GetDiskBlockDevice(disk *block.Disk, nodeName, namespace string) *diskv1.BlockDevice

GetDiskBlockDevice gets a blockdevice from a given disk.

func GetPartitionBlockDevice

func GetPartitionBlockDevice(part *block.Partition, nodeName, namespace string) *diskv1.BlockDevice

GetPartitionBlockDevice gets a blockdevice from a given partition.

func Register

Register register the block device CRD controller

Types

type Controller

type Controller struct {
	Namespace string
	NodeName  string

	NodeCache ctllonghornv1.NodeCache
	Nodes     ctllonghornv1.NodeClient

	Blockdevices     ctldiskv1.BlockDeviceClient
	BlockdeviceCache ctldiskv1.BlockDeviceCache
	BlockInfo        block.Info
	Filters          []*filter.Filter

	AutoGPTGenerate bool
}

func (*Controller) ApplyFilter

func (c *Controller) ApplyFilter(disk *block.Disk) bool

ApplyFilter check the status of every register filters if the disk meets the filter criteria it will return true else it will return false

func (*Controller) MakeGPTPartitionIfNeeded

func (c *Controller) MakeGPTPartitionIfNeeded(device *diskv1.BlockDevice) (*diskv1.BlockDevice, error)

MakeGPTPartitionIfNeeded makes GPT partition on given device if needed.

Currently only making GPT partition on devices without a name (GUID).

func (*Controller) OnBlockDeviceChange

func (c *Controller) OnBlockDeviceChange(key string, device *diskv1.BlockDevice) (*diskv1.BlockDevice, error)

OnBlockDeviceChange watch the block device CR on change and performing disk operations like mounting the disks to a desired path via ext4

func (*Controller) OnBlockDeviceDelete

func (c *Controller) OnBlockDeviceDelete(key string, device *diskv1.BlockDevice) (*diskv1.BlockDevice, error)

OnBlockDeviceDelete will delete the block devices that belongs to the same parent device

func (*Controller) SaveBlockDevice

func (c *Controller) SaveBlockDevice(bd *diskv1.BlockDevice, oldBds map[string]*diskv1.BlockDevice) (*diskv1.BlockDevice, error)

SaveBlockDevice persists the blockedevice information. If oldBds contains a blockedevice under the same name (GUID), it will only do an update, otherwise create a new one.

Note that this method also activate the device if it's previously inactive.

func (*Controller) ScanBlockDevicesOnNode

func (c *Controller) ScanBlockDevicesOnNode() error

ScanBlockDevicesOnNode scans block devices on the node, and it will either create or update them.

Jump to

Keyboard shortcuts

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