)]}'
{"id":"openstack%2Fpython-glanceclient~858757","triplet_id":"openstack%2Fpython-glanceclient~master~I1cd417262ed66925300ecfe7252d2e1ff9e45f46","project":"openstack/python-glanceclient","branch":"master","topic":"bug/1578596","attention_set":{"5202":{"account":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"last_update":"2022-11-14 16:58:39.000000000","reason":"\u003cGERRIT_ACCOUNT_8122\u003e replied on the change","reason_account":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"}}},"removed_from_attention_set":{"8122":{"account":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"last_update":"2022-11-14 16:58:39.000000000","reason":"\u003cGERRIT_ACCOUNT_8122\u003e replied on the change","reason_account":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"}}},"hashtags":[],"change_id":"I1cd417262ed66925300ecfe7252d2e1ff9e45f46","subject":"image create/update: fix handling of custom properties","status":"NEW","created":"2022-09-21 14:47:53.000000000","updated":"2023-06-14 20:47:24.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":2,"unresolved_comment_count":1,"has_review_started":true,"meta_rev_id":"1ffdd3da1c192018f3b3bf184bcbdcdb43c9ee16","_number":858757,"virtual_id_number":858757,"owner":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2023-06-14 20:47:24.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Top Priority / Holds Gate"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2022-09-21 16:13:39.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2022-09-22 11:56:19.000000000","updated_by":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"reviewer":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"state":"REVIEWER"}],"messages":[{"id":"0b7c1bfca2d7bf848fccb9c5bcf7b8ca8abdaedf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"date":"2022-09-21 14:47:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"092ce27bada03592685e195b3b7dd435a419fb9f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-09-21 16:13:39.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\nhttps://zuul.opendev.org/t/openstack/buildset/730d2ba17c8a4139960070a55a3cba39\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/00291318c62047c7a68f6651b89ebe13 : SUCCESS in 1h 23m 31s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9564626f53de474da05ebdd589552535 : SUCCESS in 4m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a12e891c99ed41e6a2b1c35d92965d4e : SUCCESS in 5m 00s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/e0b886c0f76f4b168b7669276bdf890e : SUCCESS in 5m 47s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/bfccdfd590544be69e69348caf7e8208 : SUCCESS in 5m 15s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/08c9e21a16b44bbf95499c38d68305ab : FAILURE in 4m 54s\n- glanceclient-dsvm-functional https://zuul.opendev.org/t/openstack/build/4c353fbaaa63454e98078a83d9d86df2 : SUCCESS in 37m 35s","accounts_in_message":[],"_revision_number":1},{"id":"d16e83eca6048af42a89c3b704f9f7a378487d97","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"date":"2022-09-21 17:52:05.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"1517f0752b0a2ab5c11c5ab7d6259bba6aa8ca3c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-09-21 19:19:56.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a946070c89d342d4b652124bafba03c9\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/10f26ba039fb4001bb84f57de2b35d3d : SUCCESS in 1h 15m 41s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/408ea0d28eed46cc9066a34768312eac : SUCCESS in 4m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b8461aed426b43d49ed02a7b0b4ada0e : SUCCESS in 3m 38s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/e190f40272814567abe6662c76a4a502 : SUCCESS in 3m 54s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/fe08da7346eb4c9eb8329c34b3c7f80b : SUCCESS in 3m 40s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/390d69a8f4954c0d85bd7f772864bf86 : SUCCESS in 3m 46s\n- glanceclient-dsvm-functional https://zuul.opendev.org/t/openstack/build/75ebc4e253a445169b9eab93d8b9fe87 : SUCCESS in 30m 02s","accounts_in_message":[],"_revision_number":2},{"id":"5ba784ed6c6e35728e143e04821b8edcbb6d15d6","author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"date":"2022-09-22 11:56:19.000000000","message":"Patch Set 2: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"487f553e57d9e5ad4d0fd16229b5215cc83aeedc","author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"date":"2022-11-14 16:58:39.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"f948d2ea1c3fbdc5364b05c675d7978c791025cb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"date":"2023-06-14 18:59:44.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"1ffdd3da1c192018f3b3bf184bcbdcdb43c9ee16","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-06-14 20:47:24.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d12a36396df14a63938e67e4b62647f3\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/fe532e5579af476384db42091bfe413b : SUCCESS in 1h 42m 39s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/25a1665194984129b08ae3bcfbcbc64d : SUCCESS in 3m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e591b4c2a83d451886e214269cad45c5 : SUCCESS in 2m 41s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/6b6a2ef3b9b74a2495ad9369874862d4 : SUCCESS in 3m 46s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/3e8c84869fd047a1829dfbd607b67745 : SUCCESS in 3m 13s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/5ee468f346b848d39f11ad3c82dbc82d : SUCCESS in 3m 55s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2633eac6dea443c1a1498f11a24d419c : SUCCESS in 4m 03s\n- glanceclient-dsvm-functional https://zuul.opendev.org/t/openstack/build/c1f1deccfd5d4ebaae4926dfd8d6924a : SUCCESS in 16m 36s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"bd2e2ba8aea33080b14fb22844f9bcfb8dfb8c99","revisions":{"b9a0002fa15c192e354a4abb7a2b35343d6176d2":{"kind":"REWORK","_number":1,"created":"2022-09-21 14:47:53.000000000","uploader":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"ref":"refs/changes/57/858757/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/57/858757/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/1"}}},"commit":{"parents":[{"commit":"9e8fcdb92ed41594fe458b0976e9e29387849262","subject":"Switch to 2023.1 Python3 unit tests and generic template name","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/9e8fcdb92ed41594fe458b0976e9e29387849262"}]}],"author":{"name":"Cyril Roelandt","email":"cyril@redhat.com","date":"2022-09-21 14:44:47.000000000","tz":120},"committer":{"name":"Cyril Roelandt","email":"cyril@redhat.com","date":"2022-09-21 14:44:47.000000000","tz":120},"subject":"image create/update: Prevent user from passing read-only properties","message":"image create/update: Prevent user from passing read-only properties\n\nUsers should not be allowed to pass read-only properties to\nimage-create, image-create-via-import and image-update.\n\nChange-Id: I1cd417262ed66925300ecfe7252d2e1ff9e45f46\nCloses-Bug: #1578596\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/b9a0002fa15c192e354a4abb7a2b35343d6176d2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/b9a0002fa15c192e354a4abb7a2b35343d6176d2"}]},"branch":"refs/heads/master"},"d1d98bf3e6927123c613ee0f159ef5f2e2d2ab98":{"kind":"REWORK","_number":2,"created":"2022-09-21 17:52:05.000000000","uploader":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"ref":"refs/changes/57/858757/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/57/858757/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/2"}}},"commit":{"parents":[{"commit":"9e8fcdb92ed41594fe458b0976e9e29387849262","subject":"Switch to 2023.1 Python3 unit tests and generic template name","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/9e8fcdb92ed41594fe458b0976e9e29387849262"}]}],"author":{"name":"Cyril Roelandt","email":"cyril@redhat.com","date":"2022-09-21 14:44:47.000000000","tz":120},"committer":{"name":"Cyril Roelandt","email":"cyril@redhat.com","date":"2022-09-21 17:51:58.000000000","tz":120},"subject":"image create/update: Prevent user from passing read-only properties","message":"image create/update: Prevent user from passing read-only properties\n\nUsers should not be allowed to pass read-only properties to\nimage-create, image-create-via-import and image-update.\n\nChange-Id: I1cd417262ed66925300ecfe7252d2e1ff9e45f46\nCloses-Bug: #1578596\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/d1d98bf3e6927123c613ee0f159ef5f2e2d2ab98"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/d1d98bf3e6927123c613ee0f159ef5f2e2d2ab98"}]},"branch":"refs/heads/master"},"bd2e2ba8aea33080b14fb22844f9bcfb8dfb8c99":{"kind":"REWORK","_number":3,"created":"2023-06-14 18:59:44.000000000","uploader":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"ref":"refs/changes/57/858757/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/57/858757/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/57/858757/3"}}},"commit":{"parents":[{"commit":"8681124fcc5643f9c7d2fb4943e954fc49e49441","subject":"Merge \"do_image_import: fix argument retrieval\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/8681124fcc5643f9c7d2fb4943e954fc49e49441"}]}],"author":{"name":"Cyril Roelandt","email":"cyril@redhat.com","date":"2022-09-21 14:44:47.000000000","tz":120},"committer":{"name":"Cyril Roelandt","email":"cyril@redhat.com","date":"2023-06-14 18:55:58.000000000","tz":120},"subject":"image create/update: fix handling of custom properties","message":"image create/update: fix handling of custom properties\n\nWhen passing custom properties that are not strings to image-create,\nimage-create-via-import and image-update, we get the following error:\n\n---8\u003c------------------------------------------------------------------\n$ glance image-create --name myimg --property min_ram\u003d123\nUnable to set \u0027min_ram\u0027 to \u0027123\u0027. Reason: \u0027123\u0027 is not of type \u0027integer\u0027\n\nFailed validating \u0027type\u0027 in schema[\u0027properties\u0027][\u0027min_ram\u0027]:\n    {\u0027description\u0027: \u0027Amount of ram (in MB) required to boot image.\u0027,\n     \u0027type\u0027: \u0027integer\u0027}\n\nOn instance[\u0027min_ram\u0027]:\n    \u0027123\u0027\n---8\u003c------------------------------------------------------------------\n\nBecause we get custom properties through the command line, they all\ndefault to being strings, which means warlock cannot properly validate\ntheir types.\n\nFurthermore, warlock does not check the readOnly attribute of the\njsonschema, which means it will not complain if we try to set the value\nof a read-only property, thus making one useless API call and taking\ntime to give feedback to the user:\n\n---8\u003c------------------------------------------------------------------\n$ time glance image-create --name myimg --property updated_at\u003dfoo\nHTTP 403 Forbidden: Attribute \u0026#x27;updated_at\u0026#x27; is read-only.\n\nreal    0m1.191s\nuser    0m0.503s\nsys     0m0.063s\n---8\u003c------------------------------------------------------------------\n\nThis patch makes sure that:\n- integer properties are cast from string to integer before they have to\n  be validated by Warlock;\n- we exit early if a read-only property is given on the command line;\n- we do not repeat ourselves by factorising this code in\n  _populate_properties.\n\nChange-Id: I1cd417262ed66925300ecfe7252d2e1ff9e45f46\nCloses-Bug: #1578596\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/bd2e2ba8aea33080b14fb22844f9bcfb8dfb8c99"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/bd2e2ba8aea33080b14fb22844f9bcfb8dfb8c99"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
