mirror of https://github.com/containers/podman.git
68 lines
1.5 KiB
Go
68 lines
1.5 KiB
Go
package libpod
|
|
|
|
import "github.com/containers/libpod/libpod/lock"
|
|
|
|
// Volume is the type used to create named volumes
|
|
// TODO: all volumes should be created using this and the Volume API
|
|
type Volume struct {
|
|
config *VolumeConfig
|
|
|
|
valid bool
|
|
runtime *Runtime
|
|
lock lock.Locker
|
|
}
|
|
|
|
// VolumeConfig holds the volume's config information
|
|
//easyjson:json
|
|
type VolumeConfig struct {
|
|
// Name of the volume
|
|
Name string `json:"name"`
|
|
// ID of this volume's lock
|
|
LockID uint32 `json:"lockID"`
|
|
|
|
Labels map[string]string `json:"labels"`
|
|
MountPoint string `json:"mountPoint"`
|
|
Driver string `json:"driver"`
|
|
Options map[string]string `json:"options"`
|
|
Scope string `json:"scope"`
|
|
}
|
|
|
|
// Name retrieves the volume's name
|
|
func (v *Volume) Name() string {
|
|
return v.config.Name
|
|
}
|
|
|
|
// Labels returns the volume's labels
|
|
func (v *Volume) Labels() map[string]string {
|
|
labels := make(map[string]string)
|
|
for key, value := range v.config.Labels {
|
|
labels[key] = value
|
|
}
|
|
return labels
|
|
}
|
|
|
|
// MountPoint returns the volume's mountpoint on the host
|
|
func (v *Volume) MountPoint() string {
|
|
return v.config.MountPoint
|
|
}
|
|
|
|
// Driver returns the volume's driver
|
|
func (v *Volume) Driver() string {
|
|
return v.config.Driver
|
|
}
|
|
|
|
// Options return the volume's options
|
|
func (v *Volume) Options() map[string]string {
|
|
options := make(map[string]string)
|
|
for key, value := range v.config.Options {
|
|
options[key] = value
|
|
}
|
|
|
|
return options
|
|
}
|
|
|
|
// Scope returns the scope of the volume
|
|
func (v *Volume) Scope() string {
|
|
return v.config.Scope
|
|
}
|