mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
package libpod
 | 
						|
 | 
						|
// 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
 | 
						|
}
 | 
						|
 | 
						|
// VolumeConfig holds the volume's config information
 | 
						|
//easyjson:json
 | 
						|
type VolumeConfig struct {
 | 
						|
	// Name of the volume
 | 
						|
	Name string `json:"name"`
 | 
						|
 | 
						|
	Labels        map[string]string `json:"labels"`
 | 
						|
	MountPoint    string            `json:"mountPoint"`
 | 
						|
	Driver        string            `json:"driver"`
 | 
						|
	Options       map[string]string `json:"options"`
 | 
						|
	Scope         string            `json:"scope"`
 | 
						|
	IsCtrSpecific bool              `json:"ctrSpecific"`
 | 
						|
}
 | 
						|
 | 
						|
// 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
 | 
						|
}
 | 
						|
 | 
						|
// IsCtrSpecific returns whether this volume was created specifically for a
 | 
						|
// given container. Images with this set to true will be removed when the
 | 
						|
// container is removed with the Volumes parameter set to true.
 | 
						|
func (v *Volume) IsCtrSpecific() bool {
 | 
						|
	return v.config.IsCtrSpecific
 | 
						|
}
 |