fix panic on --label-add

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This commit is contained in:
Brian Goff
2016-07-25 15:54:38 -04:00
parent 42f2205184
commit 85bc3194aa
3 changed files with 43 additions and 3 deletions

View File

@@ -120,7 +120,6 @@ func (d *SwarmDaemon) getService(c *check.C, id string) *swarm.Service {
c.Assert(status, checker.Equals, http.StatusOK, check.Commentf("output: %q", string(out)))
c.Assert(err, checker.IsNil)
c.Assert(json.Unmarshal(out, &service), checker.IsNil)
c.Assert(service.ID, checker.Equals, id)
return &service
}

View File

@@ -43,3 +43,44 @@ func (s *DockerSwarmSuite) TestServiceUpdatePort(c *check.C) {
}
c.Assert(portConfig, checker.DeepEquals, expected)
}
func (s *DockerSwarmSuite) TestServiceUpdateLabel(c *check.C) {
d := s.AddDaemon(c, true, true)
out, err := d.Cmd("service", "create", "--name=test", "busybox", "top")
c.Assert(err, checker.IsNil, check.Commentf(out))
service := d.getService(c, "test")
c.Assert(service.Spec.Labels, checker.HasLen, 0)
// add label to empty set
out, err = d.Cmd("service", "update", "test", "--label-add", "foo=bar")
c.Assert(err, checker.IsNil, check.Commentf(out))
service = d.getService(c, "test")
c.Assert(service.Spec.Labels, checker.HasLen, 1)
c.Assert(service.Spec.Labels["foo"], checker.Equals, "bar")
// add label to non-empty set
out, err = d.Cmd("service", "update", "test", "--label-add", "foo2=bar")
c.Assert(err, checker.IsNil, check.Commentf(out))
service = d.getService(c, "test")
c.Assert(service.Spec.Labels, checker.HasLen, 2)
c.Assert(service.Spec.Labels["foo2"], checker.Equals, "bar")
out, err = d.Cmd("service", "update", "test", "--label-rm", "foo2")
c.Assert(err, checker.IsNil, check.Commentf(out))
service = d.getService(c, "test")
c.Assert(service.Spec.Labels, checker.HasLen, 1)
c.Assert(service.Spec.Labels["foo2"], checker.Equals, "")
out, err = d.Cmd("service", "update", "test", "--label-rm", "foo")
c.Assert(err, checker.IsNil, check.Commentf(out))
service = d.getService(c, "test")
c.Assert(service.Spec.Labels, checker.HasLen, 0)
c.Assert(service.Spec.Labels["foo"], checker.Equals, "")
// now make sure we can add again
out, err = d.Cmd("service", "update", "test", "--label-add", "foo=bar")
c.Assert(err, checker.IsNil, check.Commentf(out))
service = d.getService(c, "test")
c.Assert(service.Spec.Labels, checker.HasLen, 1)
c.Assert(service.Spec.Labels["foo"], checker.Equals, "bar")
}