Documentation ¶
Index ¶
- Constants
- func VolumeJoin(op trace.Operation, handle *exec.Handle, volume *storage.Volume, ...) (*exec.Handle, error)
- type MountServer
- type NfsMount
- type Target
- type Volume
- type VolumeStore
- func (v *VolumeStore) Export(op trace.Operation, id, ancestor string, spec *archive.FilterSpec, data bool) (io.ReadCloser, error)
- func (v *VolumeStore) Import(op trace.Operation, id string, spec *archive.FilterSpec, ...) error
- func (v *VolumeStore) NewDataSink(op trace.Operation, id string) (storage.DataSink, error)
- func (v *VolumeStore) NewDataSource(op trace.Operation, id string) (storage.DataSource, error)
- func (v *VolumeStore) Owners(op trace.Operation, url *url.URL, filter func(vm *mo.VirtualMachine) bool) ([]*vm.VirtualMachine, error)
- func (v *VolumeStore) URL(op trace.Operation, id string) (*url.URL, error)
- func (v *VolumeStore) VolumeCreate(op trace.Operation, ID string, store *url.URL, capacityKB uint64, ...) (*storage.Volume, error)
- func (v *VolumeStore) VolumeDestroy(op trace.Operation, vol *storage.Volume) error
- func (v *VolumeStore) VolumesList(op trace.Operation) ([]*storage.Volume, error)
Constants ¶
const (
DefaultUID = 1000
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type MountServer ¶
type MountServer interface { // Mount executes the mount program on the Target. Mount(op trace.Operation) (Target, error) // Unmount terminates the Mount on the Target. Unmount(op trace.Operation) error URL() (*url.URL, error) }
MountServer is an interface used to communicate with network attached storage.
type NfsMount ¶
type NfsMount struct { // Hostname is the name to authenticate with to the target as Hostname string // UID and GID are the user id and group id to authenticate with the target UID, GID uint32 // The URL (host + path) of the NFS server and target path TargetURL *url.URL // contains filtered or unexported fields }
NfsMount is used to wrap a MountServer to do the Mount()/Unmount() and Close()
type Target ¶
type Target interface { // Open opens a file on the Target in RD_ONLY Open(path string) (io.ReadCloser, error) // OpenFile opens a file on the Target with the given mode OpenFile(path string, perm os.FileMode) (io.ReadWriteCloser, error) // Mkdir creates a directory at the given path Mkdir(path string, perm os.FileMode) ([]byte, error) // RemoveAll deletes Directory recursively RemoveAll(Path string) error // ReadDir reads the dirents in the given directory ReadDir(path string) ([]os.FileInfo, error) // Lookup reads os.FileInfo for the given path Lookup(path string) (os.FileInfo, []byte, error) }
Target is the filesystem interface for performing actions against attached storage.
type Volume ¶
type Volume struct { // VS Host + Path to the actual volume Host *url.URL // Path of the volume from the volumestore target Path string }
Volume identifies an NFS based volume
type VolumeStore ¶
type VolumeStore struct { // volume store name Name string // Service is the interface to the nfs target. Service MountServer // Service selflink to volume store. SelfLink *url.URL // Archiver defines WriteArchive and Export interface methods archive.Archiver }
VolumeStore this is nfs related volume store definition
func NewVolumeStore ¶
func NewVolumeStore(op trace.Operation, storeName string, mount MountServer) (*VolumeStore, error)
func (*VolumeStore) Export ¶
func (v *VolumeStore) Export(op trace.Operation, id, ancestor string, spec *archive.FilterSpec, data bool) (io.ReadCloser, error)
Export creates and returns a tar archive containing data found between an nfs layer one or all of its ancestors
func (*VolumeStore) Import ¶
func (v *VolumeStore) Import(op trace.Operation, id string, spec *archive.FilterSpec, tarStream io.ReadCloser) error
Import takes a tar archive stream and extracts it into the target volume
func (*VolumeStore) NewDataSink ¶
func (*VolumeStore) NewDataSource ¶
func (v *VolumeStore) NewDataSource(op trace.Operation, id string) (storage.DataSource, error)
func (*VolumeStore) Owners ¶
func (v *VolumeStore) Owners(op trace.Operation, url *url.URL, filter func(vm *mo.VirtualMachine) bool) ([]*vm.VirtualMachine, error)
func (*VolumeStore) VolumeCreate ¶
func (v *VolumeStore) VolumeCreate(op trace.Operation, ID string, store *url.URL, capacityKB uint64, info map[string][]byte) (*storage.Volume, error)
Creates a volume directory and volume object for NFS based volumes
func (*VolumeStore) VolumeDestroy ¶
VolumeDestroy Removes a volume and all of its contents from the nfs store. We already know via the cache if it is in use.