block

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2023 License: Apache-2.0 Imports: 16 Imported by: 26

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Disk

type Disk struct {
	Name                   string            `json:"name"`
	SizeBytes              uint64            `json:"size_bytes"`
	PhysicalBlockSizeBytes uint64            `json:"physical_block_size_bytes"`
	DriveType              DriveType         `json:"drive_type"`
	IsRemovable            bool              `json:"removable"`
	StorageController      StorageController `json:"storage_controller"`
	BusPath                string            `json:"bus_path"`
	// TODO(jaypipes): Convert this to a TopologyNode struct pointer and then
	// add to serialized output as "numa_node,omitempty"
	NUMANodeID   int          `json:"-"`
	Vendor       string       `json:"vendor"`
	Model        string       `json:"model"`
	SerialNumber string       `json:"serial_number"`
	WWN          string       `json:"wwn"`
	Partitions   []*Partition `json:"partitions"`
}

Disk describes a single disk drive on the host system. Disk drives provide raw block storage resources.

func (*Disk) String

func (d *Disk) String() string

type DriveType

type DriveType int

DriveType describes the general category of drive device

const (
	DRIVE_TYPE_UNKNOWN DriveType = iota
	DRIVE_TYPE_HDD               // Hard disk drive
	DRIVE_TYPE_FDD               // Floppy disk drive
	DRIVE_TYPE_ODD               // Optical disk drive
	DRIVE_TYPE_SSD               // Solid-state drive
	DRIVE_TYPE_VIRTUAL           // virtual drive i.e. loop devices
)

func (DriveType) MarshalJSON

func (dt DriveType) MarshalJSON() ([]byte, error)

NOTE(jaypipes): since serialized output is as "official" as we're going to get, let's lowercase the string output when serializing, in order to "normalize" the expected serialized output

func (DriveType) String

func (dt DriveType) String() string

func (*DriveType) UnmarshalJSON added in v0.9.0

func (dt *DriveType) UnmarshalJSON(b []byte) error

type Info

type Info struct {

	// TODO(jaypipes): Deprecate this field and replace with TotalSizeBytes
	TotalPhysicalBytes uint64       `json:"total_size_bytes"`
	Disks              []*Disk      `json:"disks"`
	Partitions         []*Partition `json:"-"`
	// contains filtered or unexported fields
}

Info describes all disk drives and partitions in the host system.

func New

func New(opts ...*option.Option) (*Info, error)

New returns a pointer to an Info struct that describes the block storage resources of the host system.

func (*Info) JSONString

func (i *Info) JSONString(indent bool) string

JSONString returns a string with the block information formatted as JSON under a top-level "block:" key

func (*Info) String

func (i *Info) String() string

func (*Info) YAMLString

func (i *Info) YAMLString() string

YAMLString returns a string with the block information formatted as YAML under a top-level "block:" key

type Partition

type Partition struct {
	Disk            *Disk  `json:"-"`
	Name            string `json:"name"`
	Label           string `json:"label"`
	MountPoint      string `json:"mount_point"`
	SizeBytes       uint64 `json:"size_bytes"`
	Type            string `json:"type"`
	IsReadOnly      bool   `json:"read_only"`
	UUID            string `json:"uuid"` // This would be volume UUID on macOS, PartUUID on linux, empty on Windows
	FilesystemLabel string `json:"filesystem_label"`
}

Partition describes a logical division of a Disk.

func (*Partition) String

func (p *Partition) String() string

type StorageController

type StorageController int

StorageController is a category of block storage controller/driver. It represents more of the physical hardware interface than the storage protocol, which represents more of the software interface.

See discussion on https://github.com/jaypipes/ghw/issues/117

const (
	STORAGE_CONTROLLER_UNKNOWN StorageController = iota
	STORAGE_CONTROLLER_IDE                       // Integrated Drive Electronics
	STORAGE_CONTROLLER_SCSI                      // Small computer system interface
	STORAGE_CONTROLLER_NVME                      // Non-volatile Memory Express
	STORAGE_CONTROLLER_VIRTIO                    // Virtualized storage controller/driver
	STORAGE_CONTROLLER_MMC                       // Multi-media controller (used for mobile phone storage devices)
	STORAGE_CONTROLLER_LOOP                      // loop device
)

func (StorageController) MarshalJSON

func (sc StorageController) MarshalJSON() ([]byte, error)

NOTE(jaypipes): since serialized output is as "official" as we're going to get, let's lowercase the string output when serializing, in order to "normalize" the expected serialized output

func (StorageController) String

func (sc StorageController) String() string

func (*StorageController) UnmarshalJSON added in v0.9.0

func (sc *StorageController) UnmarshalJSON(b []byte) error

Jump to

Keyboard shortcuts

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