Skip to content

Commit

Permalink
Libpod images pull changes
Browse files Browse the repository at this point in the history
Added quiet param to docs to limit stream output. Formatted JSON.

fixes containers#10612

Signed-off-by: cdoern <[email protected]>
Signed-off-by: cdoern <[email protected]>
  • Loading branch information
cdoern authored and cdoern committed Aug 9, 2021
1 parent 04ab2b1 commit 12ac419
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 2 deletions.
7 changes: 5 additions & 2 deletions pkg/api/handlers/libpod/images_pull.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ func ImagesPull(w http.ResponseWriter, r *http.Request) {
TLSVerify bool `schema:"tlsVerify"`
AllTags bool `schema:"allTags"`
PullPolicy string `schema:"policy"`
Quiet bool `schema:"quiet"`
}{
TLSVerify: true,
PullPolicy: "always",
Expand Down Expand Up @@ -116,8 +117,10 @@ func ImagesPull(w http.ResponseWriter, r *http.Request) {
select {
case s := <-writer.Chan():
report.Stream = string(s)
if err := enc.Encode(report); err != nil {
logrus.Warnf("Failed to encode json: %v", err)
if !query.Quiet {
if err := enc.Encode(report); err != nil {
logrus.Warnf("Failed to encode json: %v", err)
}
}
flush()
case <-runCtx.Done():
Expand Down
9 changes: 9 additions & 0 deletions pkg/api/server/register_images.go
Original file line number Diff line number Diff line change
Expand Up @@ -962,6 +962,15 @@ func (s *APIServer) registerImagesHandlers(r *mux.Router) error {
// description: "Mandatory reference to the image (e.g., quay.io/image/name:tag)"
// type: string
// - in: query
// name: quiet
// description: "silences extra stream data on pull"
// type: boolean
// default: false
// - in: query
// name: credentials
// description: "username:password for the registry"
// type: string
// - in: query
// name: Arch
// description: Pull image for the specified architecture.
// type: string
Expand Down
21 changes: 21 additions & 0 deletions test/apiv2/python/rest_api/test_v2_0_0_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,27 @@ def test_pull(self):
self.assertTrue(keys["images"], "Expected to find images stanza")
self.assertTrue(keys["stream"], "Expected to find stream progress stanza's")

r = requests.post(self.uri("/images/pull?reference=alpine&quiet=true"), timeout=15)
self.assertEqual(r.status_code, 200, r.status_code)
text = r.text
keys = {
"error": False,
"id": False,
"images": False,
"stream": False,
}
# Read and record stanza's from pull
for line in str.splitlines(text):
obj = json.loads(line)
key_list = list(obj.keys())
for k in key_list:
keys[k] = True

self.assertFalse(keys["error"], "Expected no errors")
self.assertTrue(keys["id"], "Expected to find id stanza")
self.assertTrue(keys["images"], "Expected to find images stanza")
self.assertFalse(keys["stream"], "Expected to find stream progress stanza's")

def test_create(self):
r = requests.post(
self.podman_url + "/v1.40/images/create?fromImage=alpine&platform=linux/amd64/v8",
Expand Down

0 comments on commit 12ac419

Please sign in to comment.