mirror of
https://github.com/containers/podman.git
synced 2025-05-20 16:47:39 +08:00
81 lines
2.6 KiB
Go
81 lines
2.6 KiB
Go
package libpod
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/containers/podman/v2/libpod/define"
|
|
)
|
|
|
|
// InspectVolumeData is the output of Inspect() on a volume. It is matched to
|
|
// the format of 'docker volume inspect'.
|
|
type InspectVolumeData struct {
|
|
// Name is the name of the volume.
|
|
Name string `json:"Name"`
|
|
// Driver is the driver used to create the volume.
|
|
// This will be properly implemented in a future version.
|
|
Driver string `json:"Driver"`
|
|
// Mountpoint is the path on the host where the volume is mounted.
|
|
Mountpoint string `json:"Mountpoint"`
|
|
// CreatedAt is the date and time the volume was created at. This is not
|
|
// stored for older Libpod volumes; if so, it will be omitted.
|
|
CreatedAt time.Time `json:"CreatedAt,omitempty"`
|
|
// Status is presently unused and provided only for Docker compatibility.
|
|
// In the future it will be used to return information on the volume's
|
|
// current state.
|
|
Status map[string]string `json:"Status,omitempty"`
|
|
// Labels includes the volume's configured labels, key:value pairs that
|
|
// can be passed during volume creation to provide information for third
|
|
// party tools.
|
|
Labels map[string]string `json:"Labels"`
|
|
// Scope is unused and provided solely for Docker compatibility. It is
|
|
// unconditionally set to "local".
|
|
Scope string `json:"Scope"`
|
|
// Options is a set of options that were used when creating the volume.
|
|
// It is presently not used.
|
|
Options map[string]string `json:"Options"`
|
|
// UID is the UID that the volume was created with.
|
|
UID int `json:"UID,omitempty"`
|
|
// GID is the GID that the volume was created with.
|
|
GID int `json:"GID,omitempty"`
|
|
// Anonymous indicates that the volume was created as an anonymous
|
|
// volume for a specific container, and will be be removed when any
|
|
// container using it is removed.
|
|
Anonymous bool `json:"Anonymous,omitempty"`
|
|
}
|
|
|
|
// Inspect provides detailed information about the configuration of the given
|
|
// volume.
|
|
func (v *Volume) Inspect() (*InspectVolumeData, error) {
|
|
if !v.valid {
|
|
return nil, define.ErrVolumeRemoved
|
|
}
|
|
|
|
data := new(InspectVolumeData)
|
|
|
|
data.Name = v.config.Name
|
|
data.Driver = v.config.Driver
|
|
data.Mountpoint = v.config.MountPoint
|
|
data.CreatedAt = v.config.CreatedTime
|
|
data.Labels = make(map[string]string)
|
|
for k, v := range v.config.Labels {
|
|
data.Labels[k] = v
|
|
}
|
|
data.Scope = v.Scope()
|
|
data.Options = make(map[string]string)
|
|
for k, v := range v.config.Options {
|
|
data.Options[k] = v
|
|
}
|
|
var err error
|
|
data.UID, err = v.UID()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
data.GID, err = v.GID()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
data.Anonymous = v.config.IsAnon
|
|
|
|
return data, nil
|
|
}
|