)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35203,"name":"Areg Grigoryan","email":"argrigor@cern.ch","username":"argrigor"},"change_message_id":"908968cade9982390e2cba76f49546d5cf1cecd5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5982d24d_09d276bd","updated":"2022-08-25 11:55:57.000000000","message":"This is the second part of code to make \"openstack image namespace list\" command work.\nyou can see the first part that is the client: https://review.opendev.org/c/openstack/python-openstackclient/+/854557\n\nyou also need a bugfix for this to work: https://review.opendev.org/c/openstack/openstacksdk/+/853656/6\n\n","commit_id":"cb878d66417a6fdb2445ea6c69e042324a973f73"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5c746a47a3131df82087df8e28d3095cad460d62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6f06ac80_ffe6e039","updated":"2022-08-30 15:41:23.000000000","message":"Also, these are metadef namespaces, not just namespaces. It would be good to rename the classes and files to reflect this (e.g. \u0027metadef_namespace.py\u0027 rather than \u0027namespace.py\u0027).","commit_id":"160c05b55c2851c3332f6e5b5c64ea17a4638bd9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b9b494b0d63ec545919ae8d8bf4c3d37a599389","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"213a4957_835ad6d9","updated":"2022-08-30 15:39:33.000000000","message":"Good start 😊 We could do with making this a bit more complete and ideally adding some functional tests. Change I6b0dc26044e0b1e49eb2e16bb72f77bf48a9f603 is a good example of a complete patch including tests, albeit for a different project.","commit_id":"160c05b55c2851c3332f6e5b5c64ea17a4638bd9"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c7977c5a0e2633702756de47228670d4bcb8f271","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f5206d48_6fe9e54a","updated":"2022-09-01 09:12:12.000000000","message":"In addition to the other code comments documentation for the new resource and proxy need to be added (https://opendev.org/openstack/openstacksdk/src/branch/master/doc/source/user/resources/image/index.rst and https://opendev.org/openstack/openstacksdk/src/branch/master/doc/source/user/proxies/image_v2.rst)","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fd19747e_39d71dd5","in_reply_to":"f5206d48_6fe9e54a","updated":"2022-09-01 14:34:37.000000000","message":"Both updated in the latest patch set. Thanks a lot!","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"1a217b8307780e792efb6b836c7f1f01fa483427","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2f00bdb2_327f0b39","updated":"2022-09-01 15:26:07.000000000","message":"Hi,\nyou\u0027re really fast, thanks ! \nI\u0027ll add release notes in the next patch set. Please check my reply to the comments below. Thanks a lot!\n","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ae43d81b_243738a0","updated":"2022-09-01 15:12:49.000000000","message":"Question about one field and a request to change file naming. Can you also add a release note, please?\n\nHave you tested this locally? I did and saw some issues with pagination. Let me know if you need a help fixing this.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"74587d5e_0f061cd4","updated":"2022-09-01 14:34:37.000000000","message":"Thanks a lot for the useful feedback and reviews.\nI\u0027ve addressed all comments in patchset7. \n","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8300a5d3_b46da8bb","in_reply_to":"30a8a117_965dbc61","updated":"2022-09-02 09:51:01.000000000","message":"Hi,\n\nRelease notes have been added, and I renamed to use singular tense to be consistent with image, as proposed.\n\nthe type resource_type_associations has been corrected. This one actually broke the code. Thanks a lot for spotting this!\n\nSee more detailed comments below.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"1a217b8307780e792efb6b836c7f1f01fa483427","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"30a8a117_965dbc61","in_reply_to":"ae43d81b_243738a0","updated":"2022-09-01 15:26:07.000000000","message":"We did test it locally of cause. Areg submitted a bug fix in https://review.opendev.org/c/openstack/openstacksdk/+/853656 \nwhich fixes this.\nYou can see nicely from the patchset history there where it fails. I think it is broken for any API path which has a certain depth, i.e. which has to / in it, like in our case (/metadefs/namespaces)","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6823a9d0_ea5ea9b6","updated":"2022-09-02 09:51:01.000000000","message":"Dear all,\n\nthanks for the very valuable remarks! The patchset8 should fix these.","commit_id":"5e7b12a715868fc6dccc5a7bc7c156ef321f30b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"37348e1b_52043334","updated":"2022-09-06 17:24:34.000000000","message":"This is much better, thanks 🙏 There are a couple of small things outstanding but I think this is otherwise good to go","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"6cfe5405_d1ac1f7e","updated":"2022-09-07 10:01:50.000000000","message":"Latest patch set should fix the remaining issues. Thanks a lot!","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"85fcf672_4d51f03b","updated":"2022-09-07 09:55:07.000000000","message":"Looks like you\u0027ve addressed all my nits. The CI is failing because of a mistake in the release note. If you can fix that, I\u0027m +2","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f7ae6004142da20ab430373083befdc01fbdc8bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"6582a808_c2914bd3","updated":"2022-09-07 09:56:08.000000000","message":"Oh, and there\u0027s a mistake in the test, apparently","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e0a0c9a8569773329d94f2f5540cb4821be5b670","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"7d485bdc_196968c5","updated":"2022-09-07 10:03:10.000000000","message":"Still one small nit in the tests. So close","commit_id":"ddb9ca674d640c1f64c279e04da1bc20cd4cd70c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f1a30477b99701ba62f50583dd2273df37fe979a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"e9303290_d53e2af1","updated":"2022-09-07 11:12:28.000000000","message":"Rebased on top of Ic9e1891ae7171a0cc45dd9faf1b2a6e37535b777 since that\u0027s necessary for this to function correctly.","commit_id":"51e57f823e4d7e7f96804486a9e6da5fa557319b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d9f242f79869af52f9dda90e8defd5edfbe14433","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"6e897214_0e71f809","updated":"2022-09-13 09:07:30.000000000","message":"recheck","commit_id":"703375a8cb2668f4d490a2bf10d248be0ad15a5d"}],"openstack/image/v2/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b9b494b0d63ec545919ae8d8bf4c3d37a599389","unresolved":true,"context_lines":[{"line_number":651,"context_line":"        return self._list(_member.Member, image_id\u003dimage_id)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"    def namespaces(self, **query):"},{"line_number":654,"context_line":"        \"\"\"Return a generator of namespaces"},{"line_number":655,"context_line":"        :returns: A generator of namespace objects"},{"line_number":656,"context_line":"        :rtype: :class:`~openstack.image.v2.namespace.Namespace`"},{"line_number":657,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"928623cc_a949dd2b","line":654,"updated":"2022-08-30 15:39:33.000000000","message":"need a new line under this summary for it to render correctly","commit_id":"160c05b55c2851c3332f6e5b5c64ea17a4638bd9"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        return self._list(_member.Member, image_id\u003dimage_id)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"    def namespaces(self, **query):"},{"line_number":654,"context_line":"        \"\"\"Return a generator of namespaces"},{"line_number":655,"context_line":"        :returns: A generator of namespace objects"},{"line_number":656,"context_line":"        :rtype: :class:`~openstack.image.v2.namespace.Namespace`"},{"line_number":657,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"0ced2ba0_4546115f","line":654,"in_reply_to":"928623cc_a949dd2b","updated":"2022-09-01 14:34:37.000000000","message":"Done","commit_id":"160c05b55c2851c3332f6e5b5c64ea17a4638bd9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":843,"context_line":"        \"\"\""},{"line_number":844,"context_line":"        return self._get(_si.Import, require_id\u003dFalse)"},{"line_number":845,"context_line":""},{"line_number":846,"context_line":"    def metadefs_namespaces(self, **query):"},{"line_number":847,"context_line":"        \"\"\"Get a info about image metadef namespaces"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        :returns: A generator object of metadef namespaces"}],"source_content_type":"text/x-python","patch_set":7,"id":"498ed45c_71d5b632","line":846,"range":{"start_line":846,"start_character":8,"end_line":846,"end_character":27},"updated":"2022-09-01 15:12:49.000000000","message":"metadef_namespaces (singular metadef). Similar to \u0027server_images\u0027","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"1a217b8307780e792efb6b836c7f1f01fa483427","unresolved":true,"context_lines":[{"line_number":843,"context_line":"        \"\"\""},{"line_number":844,"context_line":"        return self._get(_si.Import, require_id\u003dFalse)"},{"line_number":845,"context_line":""},{"line_number":846,"context_line":"    def metadefs_namespaces(self, **query):"},{"line_number":847,"context_line":"        \"\"\"Get a info about image metadef namespaces"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        :returns: A generator object of metadef namespaces"}],"source_content_type":"text/x-python","patch_set":7,"id":"b42cc48b_415b7d99","line":846,"range":{"start_line":846,"start_character":8,"end_line":846,"end_character":27},"in_reply_to":"498ed45c_71d5b632","updated":"2022-09-01 15:26:07.000000000","message":"We went consistently for plural to be consistent with the glance API which is \u0027/metadefs/namespaces\u0027.\nNo problem to change it though.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":843,"context_line":"        \"\"\""},{"line_number":844,"context_line":"        return self._get(_si.Import, require_id\u003dFalse)"},{"line_number":845,"context_line":""},{"line_number":846,"context_line":"    def metadefs_namespaces(self, **query):"},{"line_number":847,"context_line":"        \"\"\"Get a info about image metadef namespaces"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        :returns: A generator object of metadef namespaces"}],"source_content_type":"text/x-python","patch_set":7,"id":"a810d120_fb0e5f1f","line":846,"range":{"start_line":846,"start_character":8,"end_line":846,"end_character":27},"in_reply_to":"b42cc48b_415b7d99","updated":"2022-09-02 09:51:01.000000000","message":"Changed it to metadef_namespaces.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":850,"context_line":"        :rtype: :class:"},{"line_number":851,"context_line":"            `~openstack.image.v2.metadefs_namespace.Metadefs_namespace`"},{"line_number":852,"context_line":"        \"\"\""},{"line_number":853,"context_line":"        return (self._list(_metadefs_namespace.Metadefs_namespace, **query))"}],"source_content_type":"text/x-python","patch_set":7,"id":"fe1b32f4_ef8e6c90","line":853,"range":{"start_line":853,"start_character":47,"end_line":853,"end_character":65},"updated":"2022-09-01 15:12:49.000000000","message":"This is a class name and should be CamelCase, so\n\n  MetadefNamespace","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        :rtype: :class:"},{"line_number":851,"context_line":"            `~openstack.image.v2.metadefs_namespace.Metadefs_namespace`"},{"line_number":852,"context_line":"        \"\"\""},{"line_number":853,"context_line":"        return (self._list(_metadefs_namespace.Metadefs_namespace, **query))"}],"source_content_type":"text/x-python","patch_set":7,"id":"bb0b342a_10428eb0","line":853,"range":{"start_line":853,"start_character":47,"end_line":853,"end_character":65},"in_reply_to":"fe1b32f4_ef8e6c90","updated":"2022-09-02 09:51:01.000000000","message":"Good point. Fixed that.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":850,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceNotFound`"},{"line_number":851,"context_line":"            when no resource can be found."},{"line_number":852,"context_line":"        \"\"\""},{"line_number":853,"context_line":"        return (self._list(_metadef_namespace.MetadefNamespace, **query))"}],"source_content_type":"text/x-python","patch_set":14,"id":"ca86466d_4c361d87","line":853,"updated":"2022-09-06 17:24:34.000000000","message":"You don\u0027t need the brackets around this call. Can you drop them?","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceNotFound`"},{"line_number":851,"context_line":"            when no resource can be found."},{"line_number":852,"context_line":"        \"\"\""},{"line_number":853,"context_line":"        return (self._list(_metadef_namespace.MetadefNamespace, **query))"}],"source_content_type":"text/x-python","patch_set":14,"id":"1ff5da20_966e03d9","line":853,"in_reply_to":"ca86466d_4c361d87","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceNotFound`"},{"line_number":851,"context_line":"            when no resource can be found."},{"line_number":852,"context_line":"        \"\"\""},{"line_number":853,"context_line":"        return (self._list(_metadef_namespace.MetadefNamespace, **query))"}],"source_content_type":"text/x-python","patch_set":14,"id":"34d95a40_e94f5566","line":853,"in_reply_to":"ca86466d_4c361d87","updated":"2022-09-07 10:01:50.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"}],"openstack/image/v2/metadef_namespace.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#  TODO(schwicke): create and delete still need to be implemented"},{"line_number":17,"context_line":"class MetadefNamespace(resource.Resource):"},{"line_number":18,"context_line":"    resources_key \u003d \u0027namespaces\u0027"},{"line_number":19,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f2fd556_b3beec23","line":16,"range":{"start_line":16,"start_character":2,"end_line":16,"end_character":3},"updated":"2022-09-06 17:24:34.000000000","message":"nit: one too many spaces here","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#  TODO(schwicke): create and delete still need to be implemented"},{"line_number":17,"context_line":"class MetadefNamespace(resource.Resource):"},{"line_number":18,"context_line":"    resources_key \u003d \u0027namespaces\u0027"},{"line_number":19,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"88422b69_43ee2a34","line":16,"range":{"start_line":16,"start_character":2,"end_line":16,"end_character":3},"in_reply_to":"7f2fd556_b3beec23","updated":"2022-09-07 10:01:50.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#  TODO(schwicke): create and delete still need to be implemented"},{"line_number":17,"context_line":"class MetadefNamespace(resource.Resource):"},{"line_number":18,"context_line":"    resources_key \u003d \u0027namespaces\u0027"},{"line_number":19,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"f784145f_80fca8e9","line":16,"range":{"start_line":16,"start_character":2,"end_line":16,"end_character":3},"in_reply_to":"7f2fd556_b3beec23","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":25,"context_line":"        \"resource_types\","},{"line_number":26,"context_line":"        \"visibility\""},{"line_number":27,"context_line":"    )"},{"line_number":28,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":29,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"be96dbf1_1b004788","line":26,"updated":"2022-09-06 17:24:34.000000000","message":"You\u0027re missing \u0027sort_key\u0027 and \u0027sort_dir\u0027 also","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":25,"context_line":"        \"resource_types\","},{"line_number":26,"context_line":"        \"visibility\""},{"line_number":27,"context_line":"    )"},{"line_number":28,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":29,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"05e855d4_c11bae74","line":26,"in_reply_to":"be96dbf1_1b004788","updated":"2022-09-07 10:01:50.000000000","message":"Ack","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":25,"context_line":"        \"resource_types\","},{"line_number":26,"context_line":"        \"visibility\""},{"line_number":27,"context_line":"    )"},{"line_number":28,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":29,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5e09d42f_c37bd903","line":26,"in_reply_to":"be96dbf1_1b004788","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":30,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":31,"context_line":"    is_protected \u003d resource.Body(\u0027protected\u0027, type\u003dbool)"},{"line_number":32,"context_line":"    limit \u003d resource.Body(\u0027limit\u0027)"},{"line_number":33,"context_line":"    marker \u003d resource.Body(\u0027marker\u0027)"},{"line_number":34,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ee437592_fa72048f","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":36},"updated":"2022-09-06 17:24:34.000000000","message":"These aren\u0027t body fields. They\u0027re query strings. You should include them in \u0027_query_mapping\u0027 above, not here","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":30,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":31,"context_line":"    is_protected \u003d resource.Body(\u0027protected\u0027, type\u003dbool)"},{"line_number":32,"context_line":"    limit \u003d resource.Body(\u0027limit\u0027)"},{"line_number":33,"context_line":"    marker \u003d resource.Body(\u0027marker\u0027)"},{"line_number":34,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"510a835c_b25b9456","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":36},"in_reply_to":"ee437592_fa72048f","updated":"2022-09-07 10:01:50.000000000","message":"Ack","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":30,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":31,"context_line":"    is_protected \u003d resource.Body(\u0027protected\u0027, type\u003dbool)"},{"line_number":32,"context_line":"    limit \u003d resource.Body(\u0027limit\u0027)"},{"line_number":33,"context_line":"    marker \u003d resource.Body(\u0027marker\u0027)"},{"line_number":34,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"b96f8d0a_b9ee2a05","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":36},"in_reply_to":"ee437592_fa72048f","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":37,"context_line":"                                               type\u003dlist)"},{"line_number":38,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":39,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"25ed96be_ecddb6be","line":37,"updated":"2022-09-06 17:24:34.000000000","message":"Can you specify the type of the list items?\n\n  resource_type_associations \u003d resource.Body(\n      \u0027resource_type_associations\u0027,\n      type\u003dlist,\n      list_type\u003ddict,\n  )","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":37,"context_line":"                                               type\u003dlist)"},{"line_number":38,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":39,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"19e2f7c8_b467eb35","line":37,"in_reply_to":"25ed96be_ecddb6be","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":37,"context_line":"                                               type\u003dlist)"},{"line_number":38,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":39,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"a91a8deb_2b5c105a","line":37,"in_reply_to":"25ed96be_ecddb6be","updated":"2022-09-07 10:01:50.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":37,"context_line":"                                               type\u003dlist)"},{"line_number":38,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":39,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"73fc920b_32caaf58","line":38,"updated":"2022-09-06 17:24:34.000000000","message":"\u0027schema\u0027 is glance-internal thing. You don\u0027t want to include that.","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":37,"context_line":"                                               type\u003dlist)"},{"line_number":38,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":39,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"8ad36376_dbb3527d","line":38,"in_reply_to":"73fc920b_32caaf58","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":36,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":37,"context_line":"                                               type\u003dlist)"},{"line_number":38,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":39,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"85f64a5f_633fc0d9","line":38,"in_reply_to":"73fc920b_32caaf58","updated":"2022-09-07 10:01:50.000000000","message":"removed it.","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0c637607944106a3ac548ef01ad447763446cf7f","unresolved":true,"context_lines":[{"line_number":29,"context_line":"        \"sort_key\","},{"line_number":30,"context_line":"        \"visibility\""},{"line_number":31,"context_line":"    )"},{"line_number":32,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":33,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":34,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":35,"context_line":"    is_protected \u003d resource.Body(\u0027protected\u0027, type\u003dbool)"}],"source_content_type":"text/x-python","patch_set":18,"id":"78a594b8_b8136927","line":32,"updated":"2022-09-07 11:20:48.000000000","message":"We\u0027re also missing updated_at","commit_id":"51e57f823e4d7e7f96804486a9e6da5fa557319b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a130e75e8a7ac29a7e2b86118c4ad1fe401a6fbb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        \"sort_key\","},{"line_number":30,"context_line":"        \"visibility\""},{"line_number":31,"context_line":"    )"},{"line_number":32,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":33,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":34,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":35,"context_line":"    is_protected \u003d resource.Body(\u0027protected\u0027, type\u003dbool)"}],"source_content_type":"text/x-python","patch_set":18,"id":"57c6e324_220588fd","line":32,"in_reply_to":"78a594b8_b8136927","updated":"2022-09-07 12:11:20.000000000","message":"Fixed in a follow-up","commit_id":"51e57f823e4d7e7f96804486a9e6da5fa557319b"}],"openstack/image/v2/metadefs_namespace.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c7977c5a0e2633702756de47228670d4bcb8f271","unresolved":true,"context_lines":[{"line_number":18,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    allow_fetch \u003d True"},{"line_number":21,"context_line":"    allow_commit \u003d True"},{"line_number":22,"context_line":"    allow_list \u003d True"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _store_unknown_attrs_as_properties \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"d43803a0_0ff76c4c","line":21,"updated":"2022-09-01 09:12:12.000000000","message":"you declare additional capabilities, but not create proper functions in proxy. This means nobody can use this capability","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    allow_fetch \u003d True"},{"line_number":21,"context_line":"    allow_commit \u003d True"},{"line_number":22,"context_line":"    allow_list \u003d True"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _store_unknown_attrs_as_properties \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"de7addb9_48ce87b4","line":21,"in_reply_to":"d43803a0_0ff76c4c","updated":"2022-09-01 14:34:37.000000000","message":"Yes, true. I will remove this line, it\u0027s indeed for later. Thanks!","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c7977c5a0e2633702756de47228670d4bcb8f271","unresolved":true,"context_lines":[{"line_number":22,"context_line":"    allow_list \u003d True"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _store_unknown_attrs_as_properties \u003d True"},{"line_number":25,"context_line":"    _store_unknown_attrs_as_properties \u003d True"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":28,"context_line":"        \"namespace\","}],"source_content_type":"text/x-python","patch_set":4,"id":"99457be9_d84f77b9","line":25,"updated":"2022-09-01 09:12:12.000000000","message":"duplicated","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    allow_list \u003d True"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _store_unknown_attrs_as_properties \u003d True"},{"line_number":25,"context_line":"    _store_unknown_attrs_as_properties \u003d True"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":28,"context_line":"        \"namespace\","}],"source_content_type":"text/x-python","patch_set":4,"id":"498d2ebd_6030911e","line":25,"in_reply_to":"99457be9_d84f77b9","updated":"2022-09-01 14:34:37.000000000","message":"Ouch, yes. Sorry about that. Will be fixed in the next patch set.","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c7977c5a0e2633702756de47228670d4bcb8f271","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        \"resource_type_associations\","},{"line_number":36,"context_line":"        \"schema\""},{"line_number":37,"context_line":"    )"},{"line_number":38,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":39,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":40,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":41,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"16b1eed0_bd2ecbf8","line":38,"updated":"2022-09-01 09:12:12.000000000","message":"attributes must be sorted alphabetically","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        \"resource_type_associations\","},{"line_number":36,"context_line":"        \"schema\""},{"line_number":37,"context_line":"    )"},{"line_number":38,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":39,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":40,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":41,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1c885bc3_ecef1b4c","line":38,"in_reply_to":"16b1eed0_bd2ecbf8","updated":"2022-09-01 14:34:37.000000000","message":"Ack","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c7977c5a0e2633702756de47228670d4bcb8f271","unresolved":true,"context_lines":[{"line_number":39,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":40,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":41,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"},{"line_number":42,"context_line":"    protected \u003d resource.Body(\u0027protected\u0027)"},{"line_number":43,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":44,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":45,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"00726c1d_82cbf6df","line":42,"updated":"2022-09-01 09:12:12.000000000","message":"should be named \"is_protected\" and specify type bool","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    display_name \u003d resource.Body(\u0027display_name\u0027)"},{"line_number":40,"context_line":"    description \u003d resource.Body(\u0027description\u0027)"},{"line_number":41,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"},{"line_number":42,"context_line":"    protected \u003d resource.Body(\u0027protected\u0027)"},{"line_number":43,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":44,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":45,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5b7b0d94_3d7fb12c","line":42,"in_reply_to":"00726c1d_82cbf6df","updated":"2022-09-01 14:34:37.000000000","message":"Ack","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c7977c5a0e2633702756de47228670d4bcb8f271","unresolved":true,"context_lines":[{"line_number":42,"context_line":"    protected \u003d resource.Body(\u0027protected\u0027)"},{"line_number":43,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":44,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":45,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027)"},{"line_number":46,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5dae9c1f_3393c474","line":45,"updated":"2022-09-01 09:12:12.000000000","message":"type here is dict","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    protected \u003d resource.Body(\u0027protected\u0027)"},{"line_number":43,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":44,"context_line":"    created_at \u003d resource.Body(\u0027created_at\u0027)"},{"line_number":45,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027)"},{"line_number":46,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ad5e3134_3b1991ae","line":45,"in_reply_to":"5dae9c1f_3393c474","updated":"2022-09-01 14:34:37.000000000","message":"Ack","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bbf829af_adaad3ca","updated":"2022-09-01 15:12:49.000000000","message":"Can you call this file \u0027metadef_namespace\u0027 (singular metadef) as that\u0027s the usual naming schema (see: \u0027server_image\u0027, \u0027server_migration\u0027, \u0027resource_filter\u0027, ...)","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fe657239_33eb4ec3","in_reply_to":"bbf829af_adaad3ca","updated":"2022-09-02 09:51:01.000000000","message":"Done.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class Metadefs_namespace(resource.Resource):"},{"line_number":17,"context_line":"    resources_key \u003d \u0027namespaces\u0027"},{"line_number":18,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5be5d389_a0ce267d","line":16,"range":{"start_line":16,"start_character":6,"end_line":16,"end_character":24},"updated":"2022-09-01 15:12:49.000000000","message":"As noted in the previous file, this is a class name and should be CamelCase, so\n\n  MetadefNamespace","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class Metadefs_namespace(resource.Resource):"},{"line_number":17,"context_line":"    resources_key \u003d \u0027namespaces\u0027"},{"line_number":18,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7c0e6a33_ea0017d5","line":16,"updated":"2022-09-01 15:12:49.000000000","message":"Could you add a TODO here to indicate that this supports creation and deletion but we still need to implement it?","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class Metadefs_namespace(resource.Resource):"},{"line_number":17,"context_line":"    resources_key \u003d \u0027namespaces\u0027"},{"line_number":18,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8a9a39_063eea06","line":16,"range":{"start_line":16,"start_character":6,"end_line":16,"end_character":24},"in_reply_to":"5be5d389_a0ce267d","updated":"2022-09-02 09:51:01.000000000","message":"Class has been renamed.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class Metadefs_namespace(resource.Resource):"},{"line_number":17,"context_line":"    resources_key \u003d \u0027namespaces\u0027"},{"line_number":18,"context_line":"    base_path \u003d \u0027/metadefs/namespaces\u0027"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ae3363d2_29aedac2","line":16,"in_reply_to":"7c0e6a33_ea0017d5","updated":"2022-09-02 09:51:01.000000000","message":"Sure! Added\n# TODO: create and delete still need to be implemented                                                                                                                                       \njust before the class","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    allow_fetch \u003d True"},{"line_number":21,"context_line":"    allow_list \u003d True"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    _store_unknown_attrs_as_properties \u003d True"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":26,"context_line":"        \"created_at\","}],"source_content_type":"text/x-python","patch_set":7,"id":"a4b535ea_a13c048d","line":23,"updated":"2022-09-01 15:12:49.000000000","message":"Is this needed? Can you explain why?","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    allow_fetch \u003d True"},{"line_number":21,"context_line":"    allow_list \u003d True"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    _store_unknown_attrs_as_properties \u003d True"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":26,"context_line":"        \"created_at\","}],"source_content_type":"text/x-python","patch_set":7,"id":"6aa3cc2a_8c07bad1","line":23,"in_reply_to":"a4b535ea_a13c048d","updated":"2022-09-02 09:51:01.000000000","message":"This can indeed be dropped. Done.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":45,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":46,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":47,"context_line":"                                               type\u003ddict)"},{"line_number":48,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":49,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"2ebc5524_8fe111ab","line":47,"updated":"2022-09-01 15:12:49.000000000","message":"This isn\u0027t a dict, it\u0027s a list of dicts:\n\n  resource_type_associations \u003d resource.Body(\n      \u0027resource_type_associations\u0027,\n      type\u003dlist,\n      list_type\u003ddict,\n  )","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"},{"line_number":45,"context_line":"    owner \u003d resource.Body(\u0027owner\u0027)"},{"line_number":46,"context_line":"    resource_type_associations \u003d resource.Body(\u0027resource_type_associations\u0027,"},{"line_number":47,"context_line":"                                               type\u003ddict)"},{"line_number":48,"context_line":"    schema \u003d resource.Body(\u0027schema\u0027)"},{"line_number":49,"context_line":"    visibility \u003d resource.Body(\u0027visibility\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fc52f93_6605c389","line":47,"in_reply_to":"2ebc5524_8fe111ab","updated":"2022-09-02 09:51:01.000000000","message":"Indeed, you are perfectly right. It worked by chance only in the original patch from Areg. Fixed.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"}],"openstack/image/v2/namespace.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b9b494b0d63ec545919ae8d8bf4c3d37a599389","unresolved":true,"context_lines":[{"line_number":21,"context_line":"    allow_commit \u003d True"},{"line_number":22,"context_line":"    allow_list \u003d True"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"37f73f18_7fc2a073","line":24,"updated":"2022-08-30 15:39:33.000000000","message":"This is very incomplete. Looking at a response from a DevStack deployment, I see\n\n  {\n    \"namespaces\":[\n      {\n        \"namespace\":\"OS::Compute::Quota\",\n        \"display_name\":\"Flavor Quota\",\n        \"description\":\"Compute drivers may enable quotas on CPUs available to a VM, disk tuning, bandwidth I/O, and instance VIF traffic control.  See: http://docs.openstack.org/admin-guide/compute-flavors.html\",\n        \"visibility\":\"public\",\n        \"protected\":true,\n        \"owner\":\"admin\",\n        \"created_at\":\"2022-08-24T17:46:24Z\",\n        \"resource_type_associations\":[\n          {\n            \"name\":\"OS::Nova::Flavor\",\n            \"created_at\":\"2022-08-24T17:46:24Z\"\n          }\n        ],\n        \"self\":\"/v2/metadefs/namespaces/OS::Compute::Quota\",\n        \"schema\":\"/v2/schemas/metadefs/namespace\"\n      },\n      ...\n    ],\n    \"schema\":\"/v2/schemas/metadefs/namespaces\",\n    \"first\":\"/v2/metadefs/namespaces?limit\u003d20\"\n  }\n\nCould you add the additional fields, please?","commit_id":"160c05b55c2851c3332f6e5b5c64ea17a4638bd9"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    allow_commit \u003d True"},{"line_number":22,"context_line":"    allow_list \u003d True"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    namespace \u003d resource.Body(\u0027namespace\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"48bcb026_c4d91cc7","line":24,"in_reply_to":"37f73f18_7fc2a073","updated":"2022-09-01 14:34:37.000000000","message":"Thank you very much for the review! The additional fields have been added in Patchset3, and the naming has been changes as well. With these additional fields it should be relatively easy to implement the \u0027show\u0027 command as well in the openstack client without having to touch this patchset again.","commit_id":"160c05b55c2851c3332f6e5b5c64ea17a4638bd9"}],"openstack/tests/unit/image/v2/test_metadef_namespace.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":14,"context_line":"from openstack.tests.unit import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"EXAMPLE \u003d {"},{"line_number":17,"context_line":"    \u0027display_name\u0027: \u0027Flavor Quota\u0027,"},{"line_number":18,"context_line":"    \u0027created_at\u0027: \u00272014-08-28T17:13:06Z\u0027,"},{"line_number":19,"context_line":"    \u0027is_protected\u0027: True,"},{"line_number":20,"context_line":"    \u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f0c699c_7ea98c26","line":17,"updated":"2022-09-06 17:24:34.000000000","message":"It would be nice if the display name actually matched what would be returned for this namespace (I think it\u0027s \u0027Cinder Volume Type\u0027?) That or use the correct namespace for whatever this corresponds to.","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from openstack.tests.unit import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"EXAMPLE \u003d {"},{"line_number":17,"context_line":"    \u0027display_name\u0027: \u0027Flavor Quota\u0027,"},{"line_number":18,"context_line":"    \u0027created_at\u0027: \u00272014-08-28T17:13:06Z\u0027,"},{"line_number":19,"context_line":"    \u0027is_protected\u0027: True,"},{"line_number":20,"context_line":"    \u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"0198507a_1f5bc978","line":17,"in_reply_to":"7f0c699c_7ea98c26","updated":"2022-09-07 10:01:50.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from openstack.tests.unit import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"EXAMPLE \u003d {"},{"line_number":17,"context_line":"    \u0027display_name\u0027: \u0027Flavor Quota\u0027,"},{"line_number":18,"context_line":"    \u0027created_at\u0027: \u00272014-08-28T17:13:06Z\u0027,"},{"line_number":19,"context_line":"    \u0027is_protected\u0027: True,"},{"line_number":20,"context_line":"    \u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"0b66a8ff_af6099b4","line":17,"in_reply_to":"7f0c699c_7ea98c26","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfe01bb79da492a8e35d8d726aeb2d7526432507","unresolved":true,"context_lines":[{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestNamespace(base.TestCase):"},{"line_number":33,"context_line":"    def test_basic(self):"},{"line_number":34,"context_line":"        sot \u003d metadef_namespace.MetadefNamespace()"},{"line_number":35,"context_line":"        self.assertIsNone(sot.resource_key)"}],"source_content_type":"text/x-python","patch_set":14,"id":"b40217dc_2f188e48","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":19},"updated":"2022-09-06 17:24:34.000000000","message":"nit:\n\n  TestMetadefNamespace","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestNamespace(base.TestCase):"},{"line_number":33,"context_line":"    def test_basic(self):"},{"line_number":34,"context_line":"        sot \u003d metadef_namespace.MetadefNamespace()"},{"line_number":35,"context_line":"        self.assertIsNone(sot.resource_key)"}],"source_content_type":"text/x-python","patch_set":14,"id":"31e9971f_3d6efdfd","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":19},"in_reply_to":"b40217dc_2f188e48","updated":"2022-09-07 10:01:50.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestNamespace(base.TestCase):"},{"line_number":33,"context_line":"    def test_basic(self):"},{"line_number":34,"context_line":"        sot \u003d metadef_namespace.MetadefNamespace()"},{"line_number":35,"context_line":"        self.assertIsNone(sot.resource_key)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fadb4d61_44d5eee4","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":19},"in_reply_to":"b40217dc_2f188e48","updated":"2022-09-07 09:55:07.000000000","message":"Done","commit_id":"ed4a58b3fc6cac10ec5fa580b9eb79f1d8e70ff3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f7ae6004142da20ab430373083befdc01fbdc8bf","unresolved":true,"context_lines":[{"line_number":53,"context_line":"                \u0027limit\u0027: \u0027limit\u0027,"},{"line_number":54,"context_line":"                \u0027marker\u0027: \u0027marker\u0027,"},{"line_number":55,"context_line":"                \u0027resource_types\u0027: \u0027resource_types\u0027,"},{"line_number":56,"context_line":"                \u0027visibility\u0027: \u0027visibility\u0027"},{"line_number":57,"context_line":"            }, sot._query_mapping._mapping)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3038e4a6_af5ad89f","line":56,"updated":"2022-09-07 09:56:08.000000000","message":"You\u0027re missing sort_key and sort_dir here","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a314055058a9ee18cf00a61b35e2e2f075b9f677","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \u0027limit\u0027: \u0027limit\u0027,"},{"line_number":54,"context_line":"                \u0027marker\u0027: \u0027marker\u0027,"},{"line_number":55,"context_line":"                \u0027resource_types\u0027: \u0027resource_types\u0027,"},{"line_number":56,"context_line":"                \u0027visibility\u0027: \u0027visibility\u0027"},{"line_number":57,"context_line":"            }, sot._query_mapping._mapping)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3abbdd53_2485f6e6","line":56,"in_reply_to":"3038e4a6_af5ad89f","updated":"2022-09-07 10:46:15.000000000","message":"Done","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a314055058a9ee18cf00a61b35e2e2f075b9f677","unresolved":true,"context_lines":[{"line_number":16,"context_line":"EXAMPLE \u003d {"},{"line_number":17,"context_line":"    \u0027display_name\u0027: \u0027Cinder Volume Type\u0027,"},{"line_number":18,"context_line":"    \u0027created_at\u0027: \u00272014-08-28T17:13:06Z\u0027,"},{"line_number":19,"context_line":"    \u0027is_protected\u0027: True,"},{"line_number":20,"context_line":"    \u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027,"},{"line_number":21,"context_line":"    \u0027owner\u0027: \u0027admin\u0027,"},{"line_number":22,"context_line":"    \u0027resource_type_associations\u0027: ["}],"source_content_type":"text/x-python","patch_set":17,"id":"0ac43bc3_7bb28ff2","line":19,"range":{"start_line":19,"start_character":5,"end_line":19,"end_character":17},"updated":"2022-09-07 10:46:15.000000000","message":"This should actually read \"protected\" since that\u0027s what the API returns. Please address if you need to respin.","commit_id":"5bc25c1b2a41296efcabae931cfe091896f2544d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a130e75e8a7ac29a7e2b86118c4ad1fe401a6fbb","unresolved":false,"context_lines":[{"line_number":16,"context_line":"EXAMPLE \u003d {"},{"line_number":17,"context_line":"    \u0027display_name\u0027: \u0027Cinder Volume Type\u0027,"},{"line_number":18,"context_line":"    \u0027created_at\u0027: \u00272014-08-28T17:13:06Z\u0027,"},{"line_number":19,"context_line":"    \u0027is_protected\u0027: True,"},{"line_number":20,"context_line":"    \u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027,"},{"line_number":21,"context_line":"    \u0027owner\u0027: \u0027admin\u0027,"},{"line_number":22,"context_line":"    \u0027resource_type_associations\u0027: ["}],"source_content_type":"text/x-python","patch_set":17,"id":"079ebf94_412d580e","line":19,"range":{"start_line":19,"start_character":5,"end_line":19,"end_character":17},"in_reply_to":"0ac43bc3_7bb28ff2","updated":"2022-09-07 12:11:20.000000000","message":"Fixed in a follow-up","commit_id":"5bc25c1b2a41296efcabae931cfe091896f2544d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a314055058a9ee18cf00a61b35e2e2f075b9f677","unresolved":true,"context_lines":[{"line_number":25,"context_line":"            \u0027name\u0027: \u0027OS::Glance::Image\u0027,"},{"line_number":26,"context_line":"            \u0027updated_at\u0027: \u00272014-08-28T17:13:06Z\u0027"},{"line_number":27,"context_line":"        }"},{"line_number":28,"context_line":"    ]"},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"38fbdb86_3f7554ef","line":28,"updated":"2022-09-07 10:46:15.000000000","message":"You\u0027re missing the \u0027visibility\u0027 field","commit_id":"5bc25c1b2a41296efcabae931cfe091896f2544d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a130e75e8a7ac29a7e2b86118c4ad1fe401a6fbb","unresolved":false,"context_lines":[{"line_number":25,"context_line":"            \u0027name\u0027: \u0027OS::Glance::Image\u0027,"},{"line_number":26,"context_line":"            \u0027updated_at\u0027: \u00272014-08-28T17:13:06Z\u0027"},{"line_number":27,"context_line":"        }"},{"line_number":28,"context_line":"    ]"},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"c8f26e54_10e5cb67","line":28,"in_reply_to":"38fbdb86_3f7554ef","updated":"2022-09-07 12:11:20.000000000","message":"Fixed in a follow-up","commit_id":"5bc25c1b2a41296efcabae931cfe091896f2544d"},{"author":{"_account_id":35070,"name":"HaeIYoon","email":"dbsgodl@naver.com","username":"HI2"},"change_message_id":"9416a583f8168aa02285b9b8a79298ba3c3f8b43","unresolved":true,"context_lines":[{"line_number":32,"context_line":"class TestMetadefNamespace(base.TestCase):"},{"line_number":33,"context_line":"    def test_basic(self):"},{"line_number":34,"context_line":"        sot \u003d metadef_namespace.MetadefNamespace()"},{"line_number":35,"context_line":"        self.assertIsNone(sot.resource_key)"},{"line_number":36,"context_line":"        self.assertEqual(\u0027namespaces\u0027, sot.resources_key)"},{"line_number":37,"context_line":"        self.assertEqual(\u0027/metadefs/namespaces\u0027, sot.base_path)"},{"line_number":38,"context_line":"        self.assertTrue(sot.allow_fetch)"}],"source_content_type":"text/x-python","patch_set":19,"id":"22436c3c_af1b6b01","line":35,"range":{"start_line":35,"start_character":30,"end_line":35,"end_character":42},"updated":"2022-09-17 07:55:05.000000000","message":"The \u0027s\u0027 character was deleted. resource_key -\u003eresources_key","commit_id":"703375a8cb2668f4d490a2bf10d248be0ad15a5d"}],"openstack/tests/unit/image/v2/test_metadefs_namespace.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c7977c5a0e2633702756de47228670d4bcb8f271","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"IDENTIFIER \u003d \u0027IDENTIFIER\u0027"},{"line_number":18,"context_line":"EXAMPLE \u003d {\u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestNamespace(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fde59ab_158954d0","line":18,"updated":"2022-09-01 09:12:12.000000000","message":"please use a better example structure. You can take some random case from image api docs (https://docs.openstack.org/api-ref/image/v2/metadefs-index.html?expanded\u003dlist-namespaces-detail#list-namespaces)","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"605d581fe22c103a3e9a56eece6d2645ecde8c8e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"IDENTIFIER \u003d \u0027IDENTIFIER\u0027"},{"line_number":18,"context_line":"EXAMPLE \u003d {\u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestNamespace(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"039c8eb1_89feb93f","line":18,"in_reply_to":"3fde59ab_158954d0","updated":"2022-09-01 14:34:37.000000000","message":"I\u0027ve reworked the tests entirely, testing some of the fields added in the last patch set.","commit_id":"fc3027e7fb0c51388c94fd37115904fa959872e5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    \u0027is_protected\u0027: True,"},{"line_number":20,"context_line":"    \u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027,"},{"line_number":21,"context_line":"    \u0027owner\u0027: \u0027admin\u0027,"},{"line_number":22,"context_line":"    \u0027resource_type_associations\u0027:"},{"line_number":23,"context_line":"        {"},{"line_number":24,"context_line":"            \u0027created_at\u0027: \u00272014-08-28T17:13:06Z\u0027,"},{"line_number":25,"context_line":"            \u0027name\u0027: \u0027OS::Nova::Flavor\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"537d9810_2ef6d7a5","line":22,"updated":"2022-09-01 15:12:49.000000000","message":"Pretty sure this should be a list of dicts, not a dict.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \u0027is_protected\u0027: True,"},{"line_number":20,"context_line":"    \u0027namespace\u0027: \u0027OS::Cinder::Volumetype\u0027,"},{"line_number":21,"context_line":"    \u0027owner\u0027: \u0027admin\u0027,"},{"line_number":22,"context_line":"    \u0027resource_type_associations\u0027:"},{"line_number":23,"context_line":"        {"},{"line_number":24,"context_line":"            \u0027created_at\u0027: \u00272014-08-28T17:13:06Z\u0027,"},{"line_number":25,"context_line":"            \u0027name\u0027: \u0027OS::Nova::Flavor\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"766bc0cc_64421a01","line":22,"in_reply_to":"537d9810_2ef6d7a5","updated":"2022-09-02 09:51:01.000000000","message":"Yes, you are perfectly right. Thanks (!!!) for spotting this. It actually broke the code after the additional fields were added ... Fixed.","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"}],"openstack/tests/unit/image/v2/test_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a28f40275342e4e1812f08d3699c60bac9ad4dae","unresolved":true,"context_lines":[{"line_number":556,"context_line":"            expected_kwargs\u003d{\u0027require_id\u0027: False})"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"class TestMetadefs_namespace(TestImageProxy):"},{"line_number":560,"context_line":"    def test_metadefs_namespaces(self):"},{"line_number":561,"context_line":"        self.verify_list(self.proxy.metadefs_namespaces,"},{"line_number":562,"context_line":"                         metadefs_namespace.Metadefs_namespace)"}],"source_content_type":"text/x-python","patch_set":7,"id":"08a105e8_a8523178","line":559,"range":{"start_line":559,"start_character":10,"end_line":559,"end_character":28},"updated":"2022-09-01 15:12:49.000000000","message":"TestMetadefNamespace","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"8d1a2721186128976f83be21f684d09a807724d8","unresolved":false,"context_lines":[{"line_number":556,"context_line":"            expected_kwargs\u003d{\u0027require_id\u0027: False})"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"class TestMetadefs_namespace(TestImageProxy):"},{"line_number":560,"context_line":"    def test_metadefs_namespaces(self):"},{"line_number":561,"context_line":"        self.verify_list(self.proxy.metadefs_namespaces,"},{"line_number":562,"context_line":"                         metadefs_namespace.Metadefs_namespace)"}],"source_content_type":"text/x-python","patch_set":7,"id":"cd6e0db5_87c121b6","line":559,"range":{"start_line":559,"start_character":10,"end_line":559,"end_character":28},"in_reply_to":"08a105e8_a8523178","updated":"2022-09-02 09:51:01.000000000","message":"Done","commit_id":"4e693b189fdb9de5734d340ed73071094e0f1c0a"}],"releasenotes/notes/add-image-metadef-namespace-support-b93557afdcf4272c.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    Adds support to query metadefs/namespaces from glance."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3edf8843_1d61df12","line":3,"updated":"2022-09-07 09:55:07.000000000","message":"This needs to be a list:\n\n  features:\n    - |\n      Adds support for listing metadef namespaces from glance.","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dbb24ab9479b7b411cdacd5cee7d1080decd8db0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    Adds support to query metadefs/namespaces from glance."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"0bf5f48c_2cdc79ad","line":3,"range":{"start_line":3,"start_character":26,"end_line":3,"end_character":45},"updated":"2022-09-07 09:55:07.000000000","message":"metadef namespaces","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    Adds support to query metadefs/namespaces from glance."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"82c91b1a_1238fdcb","line":3,"range":{"start_line":3,"start_character":26,"end_line":3,"end_character":45},"in_reply_to":"0bf5f48c_2cdc79ad","updated":"2022-09-07 10:01:50.000000000","message":"Fixed as well. Thanks!","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"},{"author":{"_account_id":7953,"name":"Ulrich Schwickerath","email":"Ulrich.Schwickerath@cern.ch","username":"schwicke"},"change_message_id":"ad6542fea5c32d3080d12f0ef1c41322551ed760","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    Adds support to query metadefs/namespaces from glance."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"be453d24_4b60381e","line":3,"in_reply_to":"3edf8843_1d61df12","updated":"2022-09-07 10:01:50.000000000","message":"Ah sorry about that. Fixed it.","commit_id":"d25087fa0a7c78834364c90e3dd5ff309854dc99"}]}
