github.com/OpenFlowLabs/moby@v17.12.1-ce-rc2+incompatible/integration-cli/docker_cli_secret_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) TestSecretList(c *check.C) {
    14  	d := s.AddDaemon(c, true, true)
    15  
    16  	testName0 := "test0"
    17  	testName1 := "test1"
    18  
    19  	// create secret test0
    20  	id0 := d.CreateSecret(c, swarm.SecretSpec{
    21  		Annotations: swarm.Annotations{
    22  			Name:   testName0,
    23  			Labels: map[string]string{"type": "test"},
    24  		},
    25  		Data: []byte("TESTINGDATA0"),
    26  	})
    27  	c.Assert(id0, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id0))
    28  
    29  	secret := d.GetSecret(c, id0)
    30  	c.Assert(secret.Spec.Name, checker.Equals, testName0)
    31  
    32  	// create secret test1
    33  	id1 := d.CreateSecret(c, swarm.SecretSpec{
    34  		Annotations: swarm.Annotations{
    35  			Name:   testName1,
    36  			Labels: map[string]string{"type": "production"},
    37  		},
    38  		Data: []byte("TESTINGDATA1"),
    39  	})
    40  	c.Assert(id1, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id1))
    41  
    42  	secret = d.GetSecret(c, id1)
    43  	c.Assert(secret.Spec.Name, checker.Equals, testName1)
    44  
    45  	// test by command `docker secret ls`
    46  	out, err := d.Cmd("secret", "ls")
    47  	c.Assert(err, checker.IsNil, check.Commentf(out))
    48  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
    49  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
    50  
    51  	// test filter by name `docker secret ls --filter name=xxx`
    52  	args := []string{
    53  		"secret",
    54  		"ls",
    55  		"--filter",
    56  		"name=test0",
    57  	}
    58  	out, err = d.Cmd(args...)
    59  	c.Assert(err, checker.IsNil, check.Commentf(out))
    60  
    61  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
    62  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1)
    63  
    64  	// test filter by id `docker secret ls --filter id=xxx`
    65  	args = []string{
    66  		"secret",
    67  		"ls",
    68  		"--filter",
    69  		"id=" + id1,
    70  	}
    71  	out, err = d.Cmd(args...)
    72  	c.Assert(err, checker.IsNil, check.Commentf(out))
    73  
    74  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0)
    75  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
    76  
    77  	// test filter by label `docker secret ls --filter label=xxx`
    78  	args = []string{
    79  		"secret",
    80  		"ls",
    81  		"--filter",
    82  		"label=type",
    83  	}
    84  	out, err = d.Cmd(args...)
    85  	c.Assert(err, checker.IsNil, check.Commentf(out))
    86  
    87  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
    88  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
    89  
    90  	args = []string{
    91  		"secret",
    92  		"ls",
    93  		"--filter",
    94  		"label=type=test",
    95  	}
    96  	out, err = d.Cmd(args...)
    97  	c.Assert(err, checker.IsNil, check.Commentf(out))
    98  
    99  	c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
   100  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1)
   101  
   102  	args = []string{
   103  		"secret",
   104  		"ls",
   105  		"--filter",
   106  		"label=type=production",
   107  	}
   108  	out, err = d.Cmd(args...)
   109  	c.Assert(err, checker.IsNil, check.Commentf(out))
   110  
   111  	c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0)
   112  	c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
   113  
   114  	// test invalid filter `docker secret ls --filter noexisttype=xxx`
   115  	args = []string{
   116  		"secret",
   117  		"ls",
   118  		"--filter",
   119  		"noexisttype=test0",
   120  	}
   121  	out, err = d.Cmd(args...)
   122  	c.Assert(err, checker.NotNil, check.Commentf(out))
   123  
   124  	c.Assert(strings.TrimSpace(out), checker.Contains, "Error response from daemon: Invalid filter 'noexisttype'")
   125  }