Force --all when --filter is passed to podman ps
When we filter, it should be out of all containers, not just running ones, by default - this is necessary to ensure Docker compatability. Fixes #5050 Signed-off-by: Matthew Heon <mheon@redhat.com>
This commit is contained in:
		
							parent
							
								
									c4f6d5615a
								
							
						
					
					
						commit
						ee5b749e65
					
				|  | @ -205,6 +205,10 @@ func checkFlagsPassed(c *cliconfig.PsValues) error { | ||||||
| 	if c.Last >= 0 && c.Latest { | 	if c.Last >= 0 && c.Latest { | ||||||
| 		return errors.Errorf("last and latest are mutually exclusive") | 		return errors.Errorf("last and latest are mutually exclusive") | ||||||
| 	} | 	} | ||||||
|  | 	// Filter forces all
 | ||||||
|  | 	if len(c.Filter) > 0 { | ||||||
|  | 		c.All = true | ||||||
|  | 	} | ||||||
| 	// Quiet conflicts with size and namespace and is overridden by a Go
 | 	// Quiet conflicts with size and namespace and is overridden by a Go
 | ||||||
| 	// template.
 | 	// template.
 | ||||||
| 	if c.Quiet { | 	if c.Quiet { | ||||||
|  |  | ||||||
|  | @ -96,6 +96,7 @@ Display namespace information | ||||||
| Filter what containers are shown in the output. | Filter what containers are shown in the output. | ||||||
| Multiple filters can be given with multiple uses of the --filter flag. | Multiple filters can be given with multiple uses of the --filter flag. | ||||||
| If multiple filters are given, only containers which match all of the given filters will be shown. | If multiple filters are given, only containers which match all of the given filters will be shown. | ||||||
|  | Results will be drawn from all containers, regardless of whether --all was given. | ||||||
| 
 | 
 | ||||||
| Valid filters are listed below: | Valid filters are listed below: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -227,6 +227,22 @@ var _ = Describe("Podman ps", func() { | ||||||
| 		Expect(output[0]).To(Equal(fullCid)) | 		Expect(output[0]).To(Equal(fullCid)) | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
|  | 	It("podman ps filter by exited does not need all", func() { | ||||||
|  | 		ctr := podmanTest.Podman([]string{"run", "-t", "-i", ALPINE, "ls", "/"}) | ||||||
|  | 		ctr.WaitWithDefaultTimeout() | ||||||
|  | 		Expect(ctr.ExitCode()).To(Equal(0)) | ||||||
|  | 
 | ||||||
|  | 		psAll := podmanTest.Podman([]string{"ps", "-aq", "--no-trunc"}) | ||||||
|  | 		psAll.WaitWithDefaultTimeout() | ||||||
|  | 		Expect(psAll.ExitCode()).To(Equal(0)) | ||||||
|  | 
 | ||||||
|  | 		psFilter := podmanTest.Podman([]string{"ps", "--no-trunc", "--quiet", "--filter", "status=exited"}) | ||||||
|  | 		psFilter.WaitWithDefaultTimeout() | ||||||
|  | 		Expect(psFilter.ExitCode()).To(Equal(0)) | ||||||
|  | 
 | ||||||
|  | 		Expect(psAll.OutputToString()).To(Equal(psFilter.OutputToString())) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
| 	It("podman ps mutually exclusive flags", func() { | 	It("podman ps mutually exclusive flags", func() { | ||||||
| 		session := podmanTest.Podman([]string{"ps", "-aqs"}) | 		session := podmanTest.Podman([]string{"ps", "-aqs"}) | ||||||
| 		session.WaitWithDefaultTimeout() | 		session.WaitWithDefaultTimeout() | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue