github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/pkg/domain/infra/tunnel/volumes.go (about) 1 package tunnel 2 3 import ( 4 "context" 5 6 "github.com/containers/libpod/pkg/bindings/volumes" 7 "github.com/containers/libpod/pkg/domain/entities" 8 ) 9 10 func (ic *ContainerEngine) VolumeCreate(ctx context.Context, opts entities.VolumeCreateOptions) (*entities.IdOrNameResponse, error) { 11 response, err := volumes.Create(ic.ClientCxt, opts) 12 if err != nil { 13 return nil, err 14 } 15 return &entities.IdOrNameResponse{IdOrName: response.Name}, nil 16 } 17 18 func (ic *ContainerEngine) VolumeRm(ctx context.Context, namesOrIds []string, opts entities.VolumeRmOptions) ([]*entities.VolumeRmReport, error) { 19 var ( 20 reports []*entities.VolumeRmReport 21 ) 22 23 if opts.All { 24 vols, err := volumes.List(ic.ClientCxt, nil) 25 if err != nil { 26 return nil, err 27 } 28 for _, v := range vols { 29 namesOrIds = append(namesOrIds, v.Name) 30 } 31 } 32 for _, id := range namesOrIds { 33 reports = append(reports, &entities.VolumeRmReport{ 34 Err: volumes.Remove(ic.ClientCxt, id, &opts.Force), 35 Id: id, 36 }) 37 } 38 return reports, nil 39 } 40 41 func (ic *ContainerEngine) VolumeInspect(ctx context.Context, namesOrIds []string, opts entities.VolumeInspectOptions) ([]*entities.VolumeInspectReport, error) { 42 var ( 43 reports []*entities.VolumeInspectReport 44 ) 45 if opts.All { 46 vols, err := volumes.List(ic.ClientCxt, nil) 47 if err != nil { 48 return nil, err 49 } 50 for _, v := range vols { 51 namesOrIds = append(namesOrIds, v.Name) 52 } 53 } 54 for _, id := range namesOrIds { 55 data, err := volumes.Inspect(ic.ClientCxt, id) 56 if err != nil { 57 return nil, err 58 } 59 reports = append(reports, &entities.VolumeInspectReport{VolumeConfigResponse: data}) 60 } 61 return reports, nil 62 } 63 64 func (ic *ContainerEngine) VolumePrune(ctx context.Context, opts entities.VolumePruneOptions) ([]*entities.VolumePruneReport, error) { 65 return volumes.Prune(ic.ClientCxt) 66 } 67 68 func (ic *ContainerEngine) VolumeList(ctx context.Context, opts entities.VolumeListOptions) ([]*entities.VolumeListReport, error) { 69 return volumes.List(ic.ClientCxt, opts.Filter) 70 }