mirror of
https://github.com/containers/podman.git
synced 2025-06-02 02:26:52 +08:00
Support label type dict on compat build
The compatibility endpoint for build labels should be of type dict (not list). For backwards compatibility, we support both. Fixes: #9517 Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
@ -221,9 +221,17 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
|
|||||||
// convert label formats
|
// convert label formats
|
||||||
var labels = []string{}
|
var labels = []string{}
|
||||||
if _, found := r.URL.Query()["labels"]; found {
|
if _, found := r.URL.Query()["labels"]; found {
|
||||||
if err := json.Unmarshal([]byte(query.Labels), &labels); err != nil {
|
makeLabels := make(map[string]string)
|
||||||
utils.BadRequest(w, "labels", query.Labels, err)
|
err := json.Unmarshal([]byte(query.Labels), &makeLabels)
|
||||||
return
|
if err == nil {
|
||||||
|
for k, v := range makeLabels {
|
||||||
|
labels = append(labels, k+"="+v)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if err := json.Unmarshal([]byte(query.Labels), &labels); err != nil {
|
||||||
|
utils.BadRequest(w, "labels", query.Labels, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jobs := 1
|
jobs := 1
|
||||||
|
1
test/python/docker/build_labels/Dockerfile
Normal file
1
test/python/docker/build_labels/Dockerfile
Normal file
@ -0,0 +1 @@
|
|||||||
|
FROM quay.io/libpod/alpine:latest
|
@ -149,6 +149,14 @@ class TestImages(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEqual(len(self.client.images.list()), 2)
|
self.assertEqual(len(self.client.images.list()), 2)
|
||||||
|
|
||||||
|
def test_build_image(self):
|
||||||
|
labels = {"apple": "red", "grape": "green"}
|
||||||
|
_ = self.client.images.build(path="test/python/docker/build_labels", labels=labels, tag="labels")
|
||||||
|
image = self.client.images.get("labels")
|
||||||
|
self.assertEqual(image.labels["apple"], labels["apple"])
|
||||||
|
self.assertEqual(image.labels["grape"], labels["grape"])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Setup temporary space
|
# Setup temporary space
|
||||||
|
Reference in New Issue
Block a user