mirror of
https://github.com/containers/podman.git
synced 2025-08-06 03:19:52 +08:00
Merge pull request #24479 from Luap99/volume-ls-race
volume ls: fix race that caused it to fail
This commit is contained in:
@ -60,6 +60,9 @@ func ListVolumes(w http.ResponseWriter, r *http.Request) {
|
||||
for _, v := range vols {
|
||||
mp, err := v.MountPoint()
|
||||
if err != nil {
|
||||
if errors.Is(err, define.ErrNoSuchVolume) {
|
||||
continue
|
||||
}
|
||||
utils.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
@ -121,33 +121,13 @@ func ListVolumes(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
volumeFilters := []libpod.VolumeFilter{}
|
||||
for filter, filterValues := range *filterMap {
|
||||
filterFunc, err := filters.GenerateVolumeFilters(filter, filterValues, runtime)
|
||||
if err != nil {
|
||||
utils.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
volumeFilters = append(volumeFilters, filterFunc)
|
||||
}
|
||||
|
||||
vols, err := runtime.Volumes(volumeFilters...)
|
||||
ic := abi.ContainerEngine{Libpod: runtime}
|
||||
volumeConfigs, err := ic.VolumeList(r.Context(), entities.VolumeListOptions{Filter: *filterMap})
|
||||
if err != nil {
|
||||
utils.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
volumeConfigs := make([]*entities.VolumeListReport, 0, len(vols))
|
||||
for _, v := range vols {
|
||||
inspectOut, err := v.Inspect()
|
||||
if err != nil {
|
||||
utils.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
config := entities.VolumeConfigResponse{
|
||||
InspectVolumeData: *inspectOut,
|
||||
}
|
||||
volumeConfigs = append(volumeConfigs, &entities.VolumeListReport{VolumeConfigResponse: config})
|
||||
}
|
||||
|
||||
utils.WriteResponse(w, http.StatusOK, volumeConfigs)
|
||||
}
|
||||
|
||||
|
@ -164,6 +164,9 @@ func (ic *ContainerEngine) VolumeList(ctx context.Context, opts entities.VolumeL
|
||||
for _, v := range vols {
|
||||
inspectOut, err := v.Inspect()
|
||||
if err != nil {
|
||||
if errors.Is(err, define.ErrNoSuchVolume) {
|
||||
continue
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
config := entities.VolumeConfigResponse{
|
||||
|
Reference in New Issue
Block a user