podman stats: move cgroup validation to server
Podman stats is not supported for rootless cgroupv1 setups. The check for this must be on the server side and not the client. [NO NEW TESTS NEEDED] we cannot test this because remote and server are always on the same machine in CI Fixes #11909 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
		
							parent
							
								
									ea868933e8
								
							
						
					
					
						commit
						e57b32c595
					
				|  | @ -11,9 +11,7 @@ import ( | |||
| 	"github.com/containers/podman/v3/cmd/podman/registry" | ||||
| 	"github.com/containers/podman/v3/cmd/podman/validate" | ||||
| 	"github.com/containers/podman/v3/libpod/define" | ||||
| 	"github.com/containers/podman/v3/pkg/cgroups" | ||||
| 	"github.com/containers/podman/v3/pkg/domain/entities" | ||||
| 	"github.com/containers/podman/v3/pkg/rootless" | ||||
| 	"github.com/containers/podman/v3/utils" | ||||
| 	"github.com/docker/go-units" | ||||
| 	"github.com/pkg/errors" | ||||
|  | @ -113,16 +111,6 @@ func checkStatOptions(cmd *cobra.Command, args []string) error { | |||
| } | ||||
| 
 | ||||
| func stats(cmd *cobra.Command, args []string) error { | ||||
| 	if rootless.IsRootless() { | ||||
| 		unified, err := cgroups.IsCgroup2UnifiedMode() | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		if !unified { | ||||
| 			return errors.New("stats is not supported in rootless mode without cgroups v2") | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// Convert to the entities options.  We should not leak CLI-only
 | ||||
| 	// options into the backend and separate concerns.
 | ||||
| 	opts := entities.ContainerStatsOptions{ | ||||
|  |  | |||
|  | @ -1319,6 +1319,15 @@ func (ic *ContainerEngine) ContainerStats(ctx context.Context, namesOrIds []stri | |||
| 	if options.Interval < 1 { | ||||
| 		return nil, errors.New("Invalid interval, must be a positive number greater zero") | ||||
| 	} | ||||
| 	if rootless.IsRootless() { | ||||
| 		unified, err := cgroups.IsCgroup2UnifiedMode() | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 		if !unified { | ||||
| 			return nil, errors.New("stats is not supported in rootless mode without cgroups v2") | ||||
| 		} | ||||
| 	} | ||||
| 	statsChan = make(chan entities.ContainerStatsReport, 1) | ||||
| 
 | ||||
| 	containerFunc := ic.Libpod.GetRunningContainers | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue