Skip to content

Commit

Permalink
Merge pull request #3907 from baude/commitcaps
Browse files Browse the repository at this point in the history
dont panic when using varlink commit and uppercase image names
  • Loading branch information
openshift-merge-robot authored Aug 29, 2019
2 parents ab5f52c + 2fb6cc2 commit d110998
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pkg/varlinkapi/images.go
Original file line number Diff line number Diff line change
Expand Up @@ -563,14 +563,14 @@ func (i *LibpodAPI) Commit(call iopodman.VarlinkCall, name, imageName string, ch
}

c := make(chan error)
defer close(c)

go func() {
newImage, err = ctr.Commit(getContext(), imageName, options)
if err != nil {
c <- err
}
c <- nil
close(c)
}()

// reply is the func being sent to the output forwarder. in this case it is replying
Expand Down
47 changes: 47 additions & 0 deletions test/endpoint/commit.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package endpoint

import (
"encoding/json"
"os"

. "github.com/containers/libpod/test/utils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)

var _ = Describe("Podman commit", func() {
var (
tempdir string
err error
endpointTest *EndpointTestIntegration
)

BeforeEach(func() {
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
}
endpointTest = Setup(tempdir)
endpointTest.StartVarlinkWithCache()
})

AfterEach(func() {
endpointTest.Cleanup()

})

It("ensure commit with uppercase image name does not panic", func() {
body := make(map[string]string)
body["image_name"] = "FOO"
body["format"] = "oci"
body["name"] = "top"
b, err := json.Marshal(body)
Expect(err).To(BeNil())
// run the container to be committed
_ = endpointTest.startTopContainer("top")
result := endpointTest.Varlink("Commit", string(b), false)
// This indicates an error occured
Expect(len(result.StdErrToString())).To(BeNumerically(">", 0))
})

})
5 changes: 5 additions & 0 deletions test/endpoint/endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,11 @@ func (p *EndpointTestIntegration) Varlink(endpoint, message string, more bool) *
return &EndpointSession{session}
}

func (s *EndpointSession) StdErrToString() string {
fields := strings.Fields(fmt.Sprintf("%s", s.Err.Contents()))
return strings.Join(fields, " ")
}

func (s *EndpointSession) OutputToString() string {
fields := strings.Fields(fmt.Sprintf("%s", s.Out.Contents()))
return strings.Join(fields, " ")
Expand Down
2 changes: 1 addition & 1 deletion test/endpoint/exists_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
. "github.com/onsi/gomega"
)

var _ = Describe("Podman pull", func() {
var _ = Describe("Podman exists", func() {
var (
tempdir string
err error
Expand Down

0 comments on commit d110998

Please sign in to comment.