sys

package
v0.0.0-...-3f1f3ec Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2020 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"
	LinearType = "linear"
)

Variables

This section is empty.

Functions

func CheckIfDeviceAvailable

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

CheckIfDeviceAvailable checks if a device is available for consumption. The caller needs to decide based on the return values whether it is available. The return values are the number of partitions, whether Rook has created partitions on the device in the past possibly from the same or a previous cluster, the filesystem found, or an err if failed to retrieve the properties.

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 GetPVCDeviceFileSystems

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

GetPVCDeviceFileSystems returns the file system on a PVC device.

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 IsLV

func IsLV(devicePath string, executor exec.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"`
	// Information provided by Ceph Volume Inventory
	CephVolumeData string `json:"cephVolumeData,omitempty"`
}

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