)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4fa8bb281366ae55ca66444ca3c9475c3f6a6dd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c5c73414_dcfe7a0d","updated":"2024-09-13 14:43:19.000000000","message":"recheck openstacksdk-functional-devstack-networking-ext","commit_id":"b39d5be1c030c27142589494f63e83b9fc317317"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"864a4178a41da657e53f987af58dd24966c4b8df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6948815a_d0dd5b14","updated":"2024-10-21 09:26:12.000000000","message":"tiny nit but otherwise lgtm","commit_id":"d50b3f450ea4193653fb5f8bc91d42bb9cb1418b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b6fcb0751b6d7cbf341478a5f65a6a4ca9d1b9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"8f2f938d_819a3562","updated":"2024-11-06 10:18:27.000000000","message":"Do we want a release note?","commit_id":"5dabc5ac358e5505d7e93c61d3963574236e1ef4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"39f6350f57a474aa5fecb73d3ee1b42e95c913e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"371ac2a1_82cae877","updated":"2024-10-28 13:39:46.000000000","message":"Ping Stephen, if you have some minutes to review this patch. Thanks in advance!","commit_id":"5dabc5ac358e5505d7e93c61d3963574236e1ef4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"86333e17a94267b19979e62879ec2422a45fb0ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"81ee3246_26b3c6b0","updated":"2024-10-25 11:37:41.000000000","message":"recheck openstacksdk-functional-devstack-tips","commit_id":"5dabc5ac358e5505d7e93c61d3963574236e1ef4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e0bb3c3b13ce1add08284677f1785bc363fc894c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"723b45b4_5feab3e4","in_reply_to":"8f2f938d_819a3562","updated":"2024-11-06 10:21:52.000000000","message":"Of course! Let me update","commit_id":"5dabc5ac358e5505d7e93c61d3963574236e1ef4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"20f548117f0d337d916e2472aa514534433374cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"a2873e7c_f154cd77","updated":"2024-11-11 12:28:42.000000000","message":"**NOTE: I\u0027ve proposed some patches [1] to fix the networking-ext CI**\n\n[1]https://review.opendev.org/q/topic:%22psql-your-time-is-up%22","commit_id":"7005482787c3478589889d4e1457f569ac398ae3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"477cce6130b41a03f0d7e3cfcdba3b9ed288699d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"d1f2fb2c_35e1db03","updated":"2024-11-08 06:53:04.000000000","message":"recheck\njob: openstacksdk-functional-devstack-networking\ntest: openstack.tests.functional.compute.v2.test_volume_attachment.TestServerVolumeAttachment.test_volume_attachment","commit_id":"7005482787c3478589889d4e1457f569ac398ae3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4a7e61aa256923766624a7ff9042f5f0ea80ea4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"5544fc8b_b357c327","updated":"2024-12-14 20:06:51.000000000","message":"recheck openstacksdk-functional-devstack","commit_id":"7005482787c3478589889d4e1457f569ac398ae3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"63c76082182bdfea077e392376d27ae0eb93f7de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"221f0da2_0e89f21f","updated":"2024-11-06 14:28:32.000000000","message":"recheck openstacksdk-functional-devstack zuul error","commit_id":"7005482787c3478589889d4e1457f569ac398ae3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1bd1bbcdfaea69e677919bf67b5347e0d5bcd76f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"deeb68c0_4704375d","updated":"2024-11-11 08:03:16.000000000","message":"recheck openstacksdk-functional-devstack-networking-ext","commit_id":"7005482787c3478589889d4e1457f569ac398ae3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"eda4c7e1f2a110cb9be41069b78ab6fbf2eafc64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"46248b47_562897a2","updated":"2024-11-06 21:06:56.000000000","message":"recheck unrelated openstacksdk-functional-devstack-networking failure","commit_id":"7005482787c3478589889d4e1457f569ac398ae3"}],"openstack/common/tag.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"864a4178a41da657e53f987af58dd24966c4b8df","unresolved":true,"context_lines":[{"line_number":52,"context_line":"            self._body.attributes.update({\u0027tags\u0027: json[\u0027tags\u0027]})"},{"line_number":53,"context_line":"        return self"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def create_tags(self, session, tags):"},{"line_number":56,"context_line":"        \"\"\"Create the tags on the resource"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":7,"id":"ad344d76_acc70eaf","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":19},"updated":"2024-10-21 09:26:12.000000000","message":"From our conversations on IRC, you noted that this would add tags to the existing set, rather than override them as `set_tags` does. If so, could we call this `add_tags` (plural) instead?","commit_id":"332b277783a52ba47fabfca5900f176670ea231e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"dc09adf2e12e0d2d379f067abdf72adacefc5e97","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            self._body.attributes.update({\u0027tags\u0027: json[\u0027tags\u0027]})"},{"line_number":53,"context_line":"        return self"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def create_tags(self, session, tags):"},{"line_number":56,"context_line":"        \"\"\"Create the tags on the resource"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":7,"id":"9e19a027_f4c16437","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":19},"in_reply_to":"ad344d76_acc70eaf","updated":"2024-10-21 16:02:25.000000000","message":"Done","commit_id":"332b277783a52ba47fabfca5900f176670ea231e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"00f11c4a162635418198b02bbc7c3d1fac93fa88","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        response \u003d session.put(url, json\u003d{\u0027tags\u0027: tags})"},{"line_number":78,"context_line":"        exceptions.raise_from_response(response)"},{"line_number":79,"context_line":"        self._body.attributes.update({\u0027tags\u0027: tags})"},{"line_number":80,"context_line":"        return self"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def remove_all_tags(self, session):"},{"line_number":83,"context_line":"        \"\"\"Removes all tags on the entity."}],"source_content_type":"text/x-python","patch_set":7,"id":"72f3eff3_6bb6318e","line":80,"updated":"2024-10-18 11:33:08.000000000","message":"fwict, the only difference here is that neutron uses `POST` while other services use `PUT`. Is there any reason neutron had to diverge here? Does it also support `PUT` or just `POST`? I realize the ship has sailed here from an API perspective (commit 5a558b7d13 has already been included in a release) but I wonder if we can at least mask over the difference here. As things stand, folks are going to need to know to use `create_tags` for neutron resources and `set_tags` for everything else, despite all resources with the `TagMixin` offering both.","commit_id":"332b277783a52ba47fabfca5900f176670ea231e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0b06a25a408de47d6c672e783e04e68595283a29","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        response \u003d session.put(url, json\u003d{\u0027tags\u0027: tags})"},{"line_number":78,"context_line":"        exceptions.raise_from_response(response)"},{"line_number":79,"context_line":"        self._body.attributes.update({\u0027tags\u0027: tags})"},{"line_number":80,"context_line":"        return self"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def remove_all_tags(self, session):"},{"line_number":83,"context_line":"        \"\"\"Removes all tags on the entity."}],"source_content_type":"text/x-python","patch_set":7,"id":"86713961_88e2cc56","line":80,"in_reply_to":"72f3eff3_6bb6318e","updated":"2024-10-21 06:56:55.000000000","message":"Actually Neutron support PUT with arguments. I\u0027m going to refactor this patch to add proper FT for the tag extension in the Neutron resources.\n\nI\u0027ll add POST commands but in a Network specific TagMixin","commit_id":"332b277783a52ba47fabfca5900f176670ea231e"}],"openstack/network/v2/_base.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"864a4178a41da657e53f987af58dd24966c4b8df","unresolved":true,"context_lines":[{"line_number":48,"context_line":"class TagMixinNetwork(tag.TagMixin):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def create_tags(self, session, tags):"},{"line_number":51,"context_line":"        \"\"\"Create the tags on the resource"},{"line_number":52,"context_line":"        :param session: The session to use for making this request."},{"line_number":53,"context_line":"        :param tags: List with tags to be set on the resource"},{"line_number":54,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"6f343543_ac371211","line":51,"updated":"2024-10-21 09:26:12.000000000","message":"Missing newline. This will appear as one paragraph in docs rather than what is expected.","commit_id":"d50b3f450ea4193653fb5f8bc91d42bb9cb1418b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"dde1c538b468e8b302b5edcf0a2ea430c148fffc","unresolved":false,"context_lines":[{"line_number":48,"context_line":"class TagMixinNetwork(tag.TagMixin):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def create_tags(self, session, tags):"},{"line_number":51,"context_line":"        \"\"\"Create the tags on the resource"},{"line_number":52,"context_line":"        :param session: The session to use for making this request."},{"line_number":53,"context_line":"        :param tags: List with tags to be set on the resource"},{"line_number":54,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"c944e7cb_e5aed49e","line":51,"in_reply_to":"6f343543_ac371211","updated":"2024-10-21 16:01:35.000000000","message":"Done","commit_id":"d50b3f450ea4193653fb5f8bc91d42bb9cb1418b"}],"openstack/network/v2/_proxy.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4cc6d18ac17d9a70a97a832961c7adedbc2a847a","unresolved":true,"context_lines":[{"line_number":5434,"context_line":"        return resource.set_tags(self, tags)"},{"line_number":5435,"context_line":""},{"line_number":5436,"context_line":"    def add_tags(self, resource, tags):"},{"line_number":5437,"context_line":"        \"\"\"Add tags of a specified resource"},{"line_number":5438,"context_line":""},{"line_number":5439,"context_line":"        :param resource: :class:`~openstack.resource.Resource` instance."},{"line_number":5440,"context_line":"        :param tags: New tags to be set."}],"source_content_type":"text/x-python","patch_set":10,"id":"9dfe5aec_f18c7529","line":5437,"range":{"start_line":5437,"start_character":20,"end_line":5437,"end_character":22},"updated":"2024-10-21 20:01:47.000000000","message":"nit: s/to","commit_id":"eb70fbb3ce2db9cfc6be3568fc0061ebfe88fc60"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d61d6d202ee6792bcc4fe954acdf6bb2933776b","unresolved":false,"context_lines":[{"line_number":5434,"context_line":"        return resource.set_tags(self, tags)"},{"line_number":5435,"context_line":""},{"line_number":5436,"context_line":"    def add_tags(self, resource, tags):"},{"line_number":5437,"context_line":"        \"\"\"Add tags of a specified resource"},{"line_number":5438,"context_line":""},{"line_number":5439,"context_line":"        :param resource: :class:`~openstack.resource.Resource` instance."},{"line_number":5440,"context_line":"        :param tags: New tags to be set."}],"source_content_type":"text/x-python","patch_set":10,"id":"f63f4223_d566caca","line":5437,"range":{"start_line":5437,"start_character":20,"end_line":5437,"end_character":22},"in_reply_to":"9dfe5aec_f18c7529","updated":"2024-10-22 06:00:47.000000000","message":"Done","commit_id":"eb70fbb3ce2db9cfc6be3568fc0061ebfe88fc60"}],"openstack/tests/functional/network/v2/test_floating_ip.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9b12c72f6307bb26bf0d662e5ff40b3215fccaaf","unresolved":true,"context_lines":[{"line_number":213,"context_line":"        self.user_cloud.network.create_tags(sot, [\"red\", \"green\"])"},{"line_number":214,"context_line":"        self.user_cloud.network.create_tags(sot, [\"blue\", \"yellow\"])"},{"line_number":215,"context_line":"        sot \u003d self.user_cloud.network.get_ip(self.FIP.id)"},{"line_number":216,"context_line":"        self.assertEqual([\"blue\", \"green\", \"red\", \"yellow\"], sot.tags)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _assert_port_details(self, port, port_details):"},{"line_number":219,"context_line":"        self.assertEqual(port.name, port_details[\"name\"])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9af05943_c3a73e8f","line":216,"updated":"2024-10-07 13:41:39.000000000","message":"So a subsequent create_tags(sot, None) or create_tags(sot, []) should result in the same 4 tags still being present. Not sure if it\u0027s good to add that as well, more me talking through it so I understand the API difference.","commit_id":"a79955f44ada4dca27e719c39fc4cea72ddc3e57"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6326ce5c5d30a98d16c9da16f844a16d05eada6b","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        self.user_cloud.network.create_tags(sot, [\"red\", \"green\"])"},{"line_number":214,"context_line":"        self.user_cloud.network.create_tags(sot, [\"blue\", \"yellow\"])"},{"line_number":215,"context_line":"        sot \u003d self.user_cloud.network.get_ip(self.FIP.id)"},{"line_number":216,"context_line":"        self.assertEqual([\"blue\", \"green\", \"red\", \"yellow\"], sot.tags)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _assert_port_details(self, port, port_details):"},{"line_number":219,"context_line":"        self.assertEqual(port.name, port_details[\"name\"])"}],"source_content_type":"text/x-python","patch_set":4,"id":"0de7eafb_ede1cf7e","line":216,"in_reply_to":"9af05943_c3a73e8f","updated":"2024-10-08 13:17:50.000000000","message":"You are right, this is a valid test. Let me add it.","commit_id":"a79955f44ada4dca27e719c39fc4cea72ddc3e57"}]}
