github.com/shishir-a412ed/docker@v1.3.2-0.20180103180333-fda904911d87/integration-cli/docker_cli_config_ls_test.go (about)

     1  // +build !windows
     2  
     3  package main
     4  
     5  import (
     6  	"strings"
     7  
     8  	"github.com/docker/docker/api/types/swarm"
     9  	"github.com/docker/docker/integration-cli/checker"
    10  	"github.com/go-check/check"
    11  )
    12  
    13  func (s *DockerSwarmSuite) TestConfigList(c *check.C) {
    14  	testRequires(c, SameHostDaemon)
    15  	d := s.AddDaemon(c, true, true)
    16  
    17  	testName0 := "test0"
    18  	testName1 := "test1"
    19  
    20  	// create config test0
    21  	id0 := d.CreateConfig(c, swarm.ConfigSpec{
    22  		Annotations: swarm.Annotations{
    23  			Name:   testName0,
    24  			Labels: map[string]string{"type": "test"},
    25  		},
    26  		Data: []byte("TESTINGDATA0"),
    27  	})
    28  	c.Assert(id0, checker.Not(checker.Equals), "", check.Commentf("configs: %s", id0))
    29  
    30  	config := d.GetConfig(c, id0)
    31  	c.Assert(config.Spec.Name, checker.Equals, testName0)
    32  
    33  	// create config test1
    34  	id1 := d.CreateConfig(c, swarm.ConfigSpec{
    35  		Annotations: swarm.Annotations{
    36  			Name:   testName1,
    37  			Labels: map[string]string{"type": "production"},
    38  		},
    39  		Data: []byte("TESTINGDATA1"),
    40  	})
    41  	c.Assert(id1, checker.Not(checker.Equals), "", check.Commentf("configs: %s", id1))
    42  
    43  	config = d.GetConfig(c, id1)
    44  	c.Assert(config.Spec.Name, checker.Equals, testName1)
    45  
    46  	// test by command `docker config ls`
    47  	out, err := d.Cmd("config", "ls")
    48  	c.Assert(err, checker.IsNil, check.Commentf(out))
    49  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
    50  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
    51  
    52  	// test filter by name `docker config ls --filter name=xxx`
    53  	args := []string{
    54  		"config",
    55  		"ls",
    56  		"--filter",
    57  		"name=test0",
    58  	}
    59  	out, err = d.Cmd(args...)
    60  	c.Assert(err, checker.IsNil, check.Commentf(out))
    61  
    62  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
    63  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1)
    64  
    65  	// test filter by id `docker config ls --filter id=xxx`
    66  	args = []string{
    67  		"config",
    68  		"ls",
    69  		"--filter",
    70  		"id=" + id1,
    71  	}
    72  	out, err = d.Cmd(args...)
    73  	c.Assert(err, checker.IsNil, check.Commentf(out))
    74  
    75  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0)
    76  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
    77  
    78  	// test filter by label `docker config ls --filter label=xxx`
    79  	args = []string{
    80  		"config",
    81  		"ls",
    82  		"--filter",
    83  		"label=type",
    84  	}
    85  	out, err = d.Cmd(args...)
    86  	c.Assert(err, checker.IsNil, check.Commentf(out))
    87  
    88  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
    89  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
    90  
    91  	args = []string{
    92  		"config",
    93  		"ls",
    94  		"--filter",
    95  		"label=type=test",
    96  	}
    97  	out, err = d.Cmd(args...)
    98  	c.Assert(err, checker.IsNil, check.Commentf(out))
    99  
   100  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
   101  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1)
   102  
   103  	args = []string{
   104  		"config",
   105  		"ls",
   106  		"--filter",
   107  		"label=type=production",
   108  	}
   109  	out, err = d.Cmd(args...)
   110  	c.Assert(err, checker.IsNil, check.Commentf(out))
   111  
   112  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0)
   113  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
   114  
   115  	// test invalid filter `docker config ls --filter noexisttype=xxx`
   116  	args = []string{
   117  		"config",
   118  		"ls",
   119  		"--filter",
   120  		"noexisttype=test0",
   121  	}
   122  	out, err = d.Cmd(args...)
   123  	c.Assert(err, checker.NotNil, check.Commentf(out))
   124  
   125  	c.Assert(strings.TrimSpace(out), checker.Contains, "Error response from daemon: Invalid filter 'noexisttype'")
   126  }