Update api documentation to add labels in commit

It is already possible to set labels at commit when using the API. But
it is not present in the API documentation. Added an integration test
too, to validate this work (and will be in the future).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
This commit is contained in:
Vincent Demeester 2015-05-30 11:31:51 +02:00
Родитель 04c6f09fbd
Коммит c61fa8471a
3 изменённых файлов: 59 добавлений и 0 удалений

Просмотреть файл

@ -1752,6 +1752,10 @@ Create a new image from a container's changes
"Volumes": {
"/tmp": {}
},
"Labels": {
"key1": "value1",
"key2": "value2"
},
"WorkingDir": "",
"NetworkDisabled": false,
"ExposedPorts": {

Просмотреть файл

@ -1743,6 +1743,10 @@ Create a new image from a container's changes
"Volumes": {
"/tmp": {}
},
"Labels": {
"key1": "value1",
"key2": "value2"
},
"WorkingDir": "",
"NetworkDisabled": false,
"ExposedPorts": {

Просмотреть файл

@ -725,6 +725,57 @@ func (s *DockerSuite) TestContainerApiCommit(c *check.C) {
}
}
func (s *DockerSuite) TestContainerApiCommitWithLabelInConfig(c *check.C) {
cName := "testapicommitwithconfig"
out, err := exec.Command(dockerBinary, "run", "--name="+cName, "busybox", "/bin/sh", "-c", "touch /test").CombinedOutput()
if err != nil {
c.Fatal(err, out)
}
config := map[string]interface{}{
"Labels": map[string]string{"key1": "value1", "key2": "value2"},
}
name := "TestContainerApiCommitWithConfig"
status, b, err := sockRequest("POST", "/commit?repo="+name+"&container="+cName, config)
c.Assert(status, check.Equals, http.StatusCreated)
c.Assert(err, check.IsNil)
type resp struct {
Id string
}
var img resp
if err := json.Unmarshal(b, &img); err != nil {
c.Fatal(err)
}
label1, err := inspectFieldMap(img.Id, "Config.Labels", "key1")
if err != nil {
c.Fatal(err)
}
c.Assert(label1, check.Equals, "value1")
label2, err := inspectFieldMap(img.Id, "Config.Labels", "key2")
if err != nil {
c.Fatal(err)
}
c.Assert(label2, check.Equals, "value2")
cmd, err := inspectField(img.Id, "Config.Cmd")
if err != nil {
c.Fatal(err)
}
if cmd != "{[/bin/sh -c touch /test]}" {
c.Fatalf("got wrong Cmd from commit: %q", cmd)
}
// sanity check, make sure the image is what we think it is
out, err = exec.Command(dockerBinary, "run", img.Id, "ls", "/test").CombinedOutput()
if err != nil {
c.Fatalf("error checking committed image: %v - %q", err, string(out))
}
}
func (s *DockerSuite) TestContainerApiCreate(c *check.C) {
config := map[string]interface{}{
"Image": "busybox",