mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	Fix volume filter validation
Fixes: #18890 This fix add same filter validation logic as images. We should add such check to make sure filters work make sense to end-users Right now, we keep old use 1 as filter, but in long term, it should be have same interface checking as images, it could be improved in other patches. Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
This commit is contained in:
		
							parent
							
								
									82401a4b13
								
							
						
					
					
						commit
						66c253cbf7
					
				
					 2 changed files with 44 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -117,6 +117,30 @@ func (s *DockerSuite) TestVolumeCliLsFilterDangling(c *check.C) {
 | 
			
		|||
	c.Assert(out, checker.Contains, "testnotinuse1\n", check.Commentf("expected volume 'testnotinuse1' in output"))
 | 
			
		||||
	c.Assert(out, check.Not(checker.Contains), "testisinuse1\n", check.Commentf("volume 'testisinuse1' in output, but not expected"))
 | 
			
		||||
	c.Assert(out, check.Not(checker.Contains), "testisinuse2\n", check.Commentf("volume 'testisinuse2' in output, but not expected"))
 | 
			
		||||
 | 
			
		||||
	out, _ = dockerCmd(c, "volume", "ls", "--filter", "dangling=1")
 | 
			
		||||
	// Filter "dangling" volumes; only "dangling" (unused) volumes should be in the output, dangling also accept 1
 | 
			
		||||
	c.Assert(out, checker.Contains, "testnotinuse1\n", check.Commentf("expected volume 'testnotinuse1' in output"))
 | 
			
		||||
	c.Assert(out, check.Not(checker.Contains), "testisinuse1\n", check.Commentf("volume 'testisinuse1' in output, but not expected"))
 | 
			
		||||
	c.Assert(out, check.Not(checker.Contains), "testisinuse2\n", check.Commentf("volume 'testisinuse2' in output, but not expected"))
 | 
			
		||||
 | 
			
		||||
	out, _ = dockerCmd(c, "volume", "ls", "--filter", "dangling=0")
 | 
			
		||||
	// dangling=0 is same as dangling=false case
 | 
			
		||||
	c.Assert(out, checker.Contains, "testnotinuse1\n", check.Commentf("expected volume 'testnotinuse1' in output"))
 | 
			
		||||
	c.Assert(out, checker.Contains, "testisinuse1\n", check.Commentf("expected volume 'testisinuse1' in output"))
 | 
			
		||||
	c.Assert(out, checker.Contains, "testisinuse2\n", check.Commentf("expected volume 'testisinuse2' in output"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *DockerSuite) TestVolumeCliLsErrorWithInvalidFilterName(c *check.C) {
 | 
			
		||||
	out, _, err := dockerCmdWithError("volume", "ls", "-f", "FOO=123")
 | 
			
		||||
	c.Assert(err, checker.NotNil)
 | 
			
		||||
	c.Assert(out, checker.Contains, "Invalid filter")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *DockerSuite) TestVolumeCliLsWithIncorrectFilterValue(c *check.C) {
 | 
			
		||||
	out, _, err := dockerCmdWithError("volume", "ls", "-f", "dangling=invalid")
 | 
			
		||||
	c.Assert(err, check.NotNil)
 | 
			
		||||
	c.Assert(out, checker.Contains, "Invalid filter")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *DockerSuite) TestVolumeCliRm(c *check.C) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue