Merge pull request #3907 from baude/commitcaps

dont panic when using varlink commit and uppercase image names
This commit is contained in:
OpenShift Merge Robot
2019-08-29 14:13:09 -07:00
committed by GitHub
4 changed files with 54 additions and 2 deletions

View File

@ -563,7 +563,6 @@ 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)
@ -571,6 +570,7 @@ func (i *LibpodAPI) Commit(call iopodman.VarlinkCall, name, imageName string, ch
c <- err
}
c <- nil
close(c)
}()
// reply is the func being sent to the output forwarder. in this case it is replying

47
test/endpoint/commit.go Normal file
View File

@ -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))
})
})

View File

@ -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, " ")

View File

@ -8,7 +8,7 @@ import (
. "github.com/onsi/gomega"
)
var _ = Describe("Podman pull", func() {
var _ = Describe("Podman exists", func() {
var (
tempdir string
err error