The current capacity and usage numbers are insufficient to figure out actual bytes available for a non-root user for the fs. Available is the value used by df and the one we need to track to detect low diskspace condition.
67 lines
1.9 KiB
Go
67 lines
1.9 KiB
Go
// Copyright 2014 Google Inc. 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.
|
|
|
|
package fs
|
|
|
|
type DeviceInfo struct {
|
|
Device string
|
|
Major uint
|
|
Minor uint
|
|
}
|
|
|
|
type Fs struct {
|
|
DeviceInfo
|
|
Capacity uint64
|
|
Free uint64
|
|
Available uint64
|
|
DiskStats DiskStats
|
|
}
|
|
|
|
type DiskStats struct {
|
|
ReadsCompleted uint64
|
|
ReadsMerged uint64
|
|
SectorsRead uint64
|
|
ReadTime uint64
|
|
WritesCompleted uint64
|
|
WritesMerged uint64
|
|
SectorsWritten uint64
|
|
WriteTime uint64
|
|
IoInProgress uint64
|
|
IoTime uint64
|
|
WeightedIoTime uint64
|
|
}
|
|
|
|
type FsInfo interface {
|
|
// Returns capacity and free space, in bytes, of all the ext2, ext3, ext4 filesystems on the host.
|
|
GetGlobalFsInfo() ([]Fs, error)
|
|
|
|
// Returns capacity and free space, in bytes, of the set of mounts passed.
|
|
GetFsInfoForPath(mountSet map[string]struct{}) ([]Fs, error)
|
|
|
|
// Returns number of bytes occupied by 'dir'.
|
|
GetDirUsage(dir string) (uint64, error)
|
|
|
|
// Returns the block device info of the filesystem on which 'dir' resides.
|
|
GetDirFsDevice(dir string) (*DeviceInfo, error)
|
|
|
|
// Returns the device name associated with a particular label.
|
|
GetDeviceForLabel(label string) (string, error)
|
|
|
|
// Returns all labels associated with a particular device name.
|
|
GetLabelsForDevice(device string) ([]string, error)
|
|
|
|
// Returns the mountpoint associated with a particular device.
|
|
GetMountpointForDevice(device string) (string, error)
|
|
}
|