Build and install from GOPATH
* Rename 'vendor/src' -> 'vendor' * Ignore vendor/ instead of vendor/src/ for lint * Rename 'cmd/client' -> 'cmd/ocic' to make it 'go install'able * Rename 'cmd/server' -> 'cmd/ocid' to make it 'go install'able * Update Makefile to build and install from GOPATH * Update tests to locate ocid/ocic in GOPATH/bin * Search for binaries in GOPATH/bin instead of PATH * Install tools using `go get -u`, so they are updated on each run Signed-off-by: Jonathan Yu <jawnsy@redhat.com>
This commit is contained in:
parent
9da2882d49
commit
6c9628cdb1
1111 changed files with 70 additions and 61 deletions
112
vendor/github.com/mistifyio/go-zfs/zpool.go
generated
vendored
Normal file
112
vendor/github.com/mistifyio/go-zfs/zpool.go
generated
vendored
Normal file
|
@ -0,0 +1,112 @@
|
|||
package zfs
|
||||
|
||||
// ZFS zpool states, which can indicate if a pool is online, offline,
|
||||
// degraded, etc. More information regarding zpool states can be found here:
|
||||
// https://docs.oracle.com/cd/E19253-01/819-5461/gamno/index.html.
|
||||
const (
|
||||
ZpoolOnline = "ONLINE"
|
||||
ZpoolDegraded = "DEGRADED"
|
||||
ZpoolFaulted = "FAULTED"
|
||||
ZpoolOffline = "OFFLINE"
|
||||
ZpoolUnavail = "UNAVAIL"
|
||||
ZpoolRemoved = "REMOVED"
|
||||
)
|
||||
|
||||
// Zpool is a ZFS zpool. A pool is a top-level structure in ZFS, and can
|
||||
// contain many descendent datasets.
|
||||
type Zpool struct {
|
||||
Name string
|
||||
Health string
|
||||
Allocated uint64
|
||||
Size uint64
|
||||
Free uint64
|
||||
Fragmentation uint64
|
||||
ReadOnly bool
|
||||
Freeing uint64
|
||||
Leaked uint64
|
||||
DedupRatio float64
|
||||
}
|
||||
|
||||
// zpool is a helper function to wrap typical calls to zpool.
|
||||
func zpool(arg ...string) ([][]string, error) {
|
||||
c := command{Command: "zpool"}
|
||||
return c.Run(arg...)
|
||||
}
|
||||
|
||||
// GetZpool retrieves a single ZFS zpool by name.
|
||||
func GetZpool(name string) (*Zpool, error) {
|
||||
args := zpoolArgs
|
||||
args = append(args, name)
|
||||
out, err := zpool(args...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// there is no -H
|
||||
out = out[1:]
|
||||
|
||||
z := &Zpool{Name: name}
|
||||
for _, line := range out {
|
||||
if err := z.parseLine(line); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return z, nil
|
||||
}
|
||||
|
||||
// Datasets returns a slice of all ZFS datasets in a zpool.
|
||||
func (z *Zpool) Datasets() ([]*Dataset, error) {
|
||||
return Datasets(z.Name)
|
||||
}
|
||||
|
||||
// Snapshots returns a slice of all ZFS snapshots in a zpool.
|
||||
func (z *Zpool) Snapshots() ([]*Dataset, error) {
|
||||
return Snapshots(z.Name)
|
||||
}
|
||||
|
||||
// CreateZpool creates a new ZFS zpool with the specified name, properties,
|
||||
// and optional arguments.
|
||||
// A full list of available ZFS properties and command-line arguments may be
|
||||
// found here: https://www.freebsd.org/cgi/man.cgi?zfs(8).
|
||||
func CreateZpool(name string, properties map[string]string, args ...string) (*Zpool, error) {
|
||||
cli := make([]string, 1, 4)
|
||||
cli[0] = "create"
|
||||
if properties != nil {
|
||||
cli = append(cli, propsSlice(properties)...)
|
||||
}
|
||||
cli = append(cli, name)
|
||||
cli = append(cli, args...)
|
||||
_, err := zpool(cli...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &Zpool{Name: name}, nil
|
||||
}
|
||||
|
||||
// Destroy destroys a ZFS zpool by name.
|
||||
func (z *Zpool) Destroy() error {
|
||||
_, err := zpool("destroy", z.Name)
|
||||
return err
|
||||
}
|
||||
|
||||
// ListZpools list all ZFS zpools accessible on the current system.
|
||||
func ListZpools() ([]*Zpool, error) {
|
||||
args := []string{"list", "-Ho", "name"}
|
||||
out, err := zpool(args...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var pools []*Zpool
|
||||
|
||||
for _, line := range out {
|
||||
z, err := GetZpool(line[0])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pools = append(pools, z)
|
||||
}
|
||||
return pools, nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue