sys

package
v0.0.0-...-1ea1cc7 Latest Latest
Warning

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

Go to latest
Published: May 15, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Copyright 2016 The Rook Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2016 The Rook Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2016 The Rook Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2016 The Rook Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	DiskType  = "disk"
	SSDType   = "ssd"
	PartType  = "part"
	CryptType = "crypt"
	LVMType   = "lvm"
)

Variables

This section is empty.

Functions

func CheckIfDeviceAvailable

func CheckIfDeviceAvailable(executor exec.Executor, name string) (bool, string, error)

func CheckKernelModuleParam

func CheckKernelModuleParam(name, param string, executor pkgexec.Executor) (bool, error)

func CreatePartitions

func CreatePartitions(device string, args []string, executor exec.Executor) error

func FormatDevice

func FormatDevice(devicePath string, executor exec.Executor) error

func GetDeviceFilesystems

func GetDeviceFilesystems(device string, executor exec.Executor) (string, error)

get the file systems available

func GetDeviceProperties

func GetDeviceProperties(device string, executor exec.Executor) (map[string]string, error)

func GetDevicePropertiesFromPath

func GetDevicePropertiesFromPath(devicePath string, executor exec.Executor) (map[string]string, error)

func GetDiskUUID

func GetDiskUUID(device string, executor exec.Executor) (string, error)

look up the UUID for a disk.

func GetPartitionLabel

func GetPartitionLabel(deviceName string, executor exec.Executor) (string, error)

func GetUdevInfo

func GetUdevInfo(device string, executor exec.Executor) (map[string]string, error)

func Grep

func Grep(input, searchFor string) string

grep finds the *first* line that matches, rather than multiple lines

func IsBuiltinKernelModule

func IsBuiltinKernelModule(name string, executor pkgexec.Executor) (bool, error)

func ListDevices

func ListDevices(executor exec.Executor) ([]string, error)

func LoadKernelModule

func LoadKernelModule(name string, options []string, executor pkgexec.Executor) error

func MountDevice

func MountDevice(devicePath, mountPath string, executor exec.Executor) error

func MountDeviceWithOptions

func MountDeviceWithOptions(devicePath, mountPath, fstype, options string, executor exec.Executor) error

comma-separated list of mount options passed directly to mount command

func RemovePartitions

func RemovePartitions(device string, executor exec.Executor) error

func RookOwnsPartitions

func RookOwnsPartitions(partitions []Partition) bool

RookOwnsPartitions check if all partitions in list are owned by Rook

func UnmountDevice

func UnmountDevice(devicePath string, executor exec.Executor) error

Types

type LocalDisk

type LocalDisk struct {
	// Name is the device name
	Name string `json:"name"`
	// Parent is the device parent's name
	Parent string `json:"parent"`
	// HasChildren is whether the device has a children device
	HasChildren bool `json:"hasChildren"`
	// DevLinks is the persistent device path on the host
	DevLinks string `json:"devLinks"`
	// Size is the device capacity in byte
	Size uint64 `json:"size"`
	// UUID is used by /dev/disk/by-uuid
	UUID string `json:"uuid"`
	// Serial is the disk serial used by /dev/disk/by-id
	Serial string `json:"serial"`
	// Type is disk type
	Type string `json:"type"`
	// Rotational is the boolean whether the device is rotational: true for hdd, false for ssd and nvme
	Rotational bool `json:"rotational"`
	// ReadOnly is the boolean whether the device is readonly
	Readonly bool `json:"readOnly"`
	// Partitions is a partition slice
	Partitions []Partition
	// Filesystem is the filesystem currently on the device
	Filesystem string `json:"filesystem"`
	// Vendor is the device vendor
	Vendor string `json:"vendor"`
	// Model is the device model
	Model string `json:"model"`
	// WWN is the world wide name of the device
	WWN string `json:"wwn"`
	// WWNVendorExtension is the WWN_VENDOR_EXTENSION from udev info
	WWNVendorExtension string `json:"wwnVendorExtension"`
	// Empty checks whether the device is completely empty
	Empty bool `json:"empty"`
}

LocalDevice contains information about an unformatted block device

type Partition

type Partition struct {
	Name       string
	Size       uint64
	Label      string
	Filesystem string
}

func GetDevicePartitions

func GetDevicePartitions(device string, executor exec.Executor) (partitions []Partition, unusedSpace uint64, err error)

Jump to

Keyboard shortcuts

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