Categorygithub.com/mistifyio/go-zfs
modulepackage
1.0.0
Repository: https://github.com/mistifyio/go-zfs.git
Documentation: pkg.go.dev

# README

Go Wrapper for ZFS

Simple wrappers for ZFS command line tools.

GoDoc

Requirements

You need a working ZFS setup. To use on Ubuntu 14.04, setup ZFS:

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:zfs-native/stable
sudo apt-get update
sudo apt-get install ubuntu-zfs libzfs-dev

Developed using Go 1.3, but currently there isn't anything 1.3 specific. Don't use Ubuntu packages for Go, use http://golang.org/doc/install

Generally you need root privileges to use anything zfs related.

Status

This has been only been tested on Ubuntu 14.04

In the future, we hope to work directly with libzfs.

Hacking

The tests have decent examples for most functions.

//assuming a zpool named test
//error handling ommitted


f, err := zfs.CreateFilesystem("test/snapshot-test", nil)
ok(t, err)

s, err := f.Snapshot("test", nil)
ok(t, err)

// snapshot is named "test/snapshot-test@test"

c, err := s.Clone("test/clone-test", nil)

err := c.Destroy()
err := s.Destroy()
err := f.Destroy()

Contributing

See the contributing guidelines

# Functions

CreateFilesystem creates a new filesystem.
CreateVolume creates a new volume.
CreateZpool creates a new zpool.
Datasets returns a slice of all datasets.
Filesystems returns a slice of all filesystems.
GetDataset retrieves a single dataset.
GetZpool retrieves a Zpool.
ListZpools list all zpools.
ReceiveSnapshot receives a zfs stream into a new snapshot.
Snapshots returns a slice of all snapshots.
Volumes returns a slice of all volumes.

# Constants

based on https://github.com/dustin/go-humanize/blob/master/bytes.go.
based on https://github.com/dustin/go-humanize/blob/master/bytes.go.
based on https://github.com/dustin/go-humanize/blob/master/bytes.go.
based on https://github.com/dustin/go-humanize/blob/master/bytes.go.
based on https://github.com/dustin/go-humanize/blob/master/bytes.go.
based on https://github.com/dustin/go-humanize/blob/master/bytes.go.
based on https://github.com/dustin/go-humanize/blob/master/bytes.go.

# Structs

Dataset is a zfs dataset.
Error is an error which is returned when the `zfs` or `zpool` shell commands return with a non-zero exit code.
Zpool represents a ZFS Pool.