)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d9c1f66eb671bb51f465a80b90c0d6e7708807a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"26fce4d2_a4264be5","updated":"2023-03-21 10:51:06.000000000","message":"I know this isn\u0027t openstacksdk code, but I spotted the review and decided to take a look","commit_id":"3e0e290bbc015afc2d28c5ea9dbec4630ae3df5d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0f25f39249addadb837762b94030515bded62a6e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"39f9778d_b200eabf","in_reply_to":"26fce4d2_a4264be5","updated":"2023-03-22 10:49:43.000000000","message":"Thanks it is really helpful","commit_id":"3e0e290bbc015afc2d28c5ea9dbec4630ae3df5d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"faf697c034041092105bcc8c5bfed0b94415f82b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bbe2536d_21a3086a","updated":"2023-04-17 13:40:42.000000000","message":"I\u0027ve pushed https://review.opendev.org/c/openstack/releases/+/880631, to release SDK 1.0.2 that includes https://review.opendev.org/c/openstack/openstacksdk/+/875530","commit_id":"c59ff8a5df4997eaf61c5c5d97cb02d60a2ff873"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5b441e67897f3e911cd497c256aedffba33f9d67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"68473e6a_6f5e451d","updated":"2023-04-20 09:10:57.000000000","message":"have to wait for https://review.opendev.org/c/openstack/releases/+/880631 and for the requirements bump....","commit_id":"c59ff8a5df4997eaf61c5c5d97cb02d60a2ff873"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e5920981ffad5599f63233ef88bce5edd1ff4d3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"33e223c8_f5c22ebd","updated":"2023-05-24 09:07:47.000000000","message":"Another few comments purely on SDK-style stuff. Feel free to ignore me.","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"}],"neutronclient/osc/v2/networking_bgpvpn/resource_association.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8eef70a5e354dda158923badc2c0974d6f488c3","unresolved":true,"context_lines":[{"line_number":246,"context_line":"    def take_action(self, parsed_args):"},{"line_number":247,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":248,"context_line":"        show_method \u003d getattr("},{"line_number":249,"context_line":"            client, \u0027get_bgpvpn_%s_association\u0027 % self._assoc_res_name)"},{"line_number":250,"context_line":"        bgpvpn \u003d client.find_bgpvpn(parsed_args.bgpvpn)"},{"line_number":251,"context_line":"        obj \u003d show_method(bgpvpn[\u0027id\u0027],"},{"line_number":252,"context_line":"                          parsed_args.resource_association_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"c2f44683_82cffdbc","line":249,"updated":"2023-05-24 09:07:26.000000000","message":"nit: personally, I find this a bit magical. A simple if-elseif-else would achieve the same thing and be far more readable, IMO\n\n    bgpvpn \u003d client.find_bgpvpn(parsed_args.bgpvpn)\n    if self._assoc_res_name \u003d\u003d \u0027router\u0027:\n        self.client.get_bgpvpn_router_association(\n            bgpvpn[\u0027id\u0027], parsed_args.resource_association_id)\n    elif self._assoc_res_name \u003d\u003d \u0027network\u0027:\n        # ...\n    else:  # self._assoc_res_name \u003d\u003d \u0027port\u0027\n        # ...\n\nBut entirely up to you 😊","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1f722afe66f7dcf6cd95841df7f80de93d95de43","unresolved":false,"context_lines":[{"line_number":246,"context_line":"    def take_action(self, parsed_args):"},{"line_number":247,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":248,"context_line":"        show_method \u003d getattr("},{"line_number":249,"context_line":"            client, \u0027get_bgpvpn_%s_association\u0027 % self._assoc_res_name)"},{"line_number":250,"context_line":"        bgpvpn \u003d client.find_bgpvpn(parsed_args.bgpvpn)"},{"line_number":251,"context_line":"        obj \u003d show_method(bgpvpn[\u0027id\u0027],"},{"line_number":252,"context_line":"                          parsed_args.resource_association_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"b7e6e3d9_ca36cdc5","line":249,"in_reply_to":"50996525_b4427c76","updated":"2023-05-24 12:43:47.000000000","message":"Ack","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"80ea0f13fb22ba3606172616876b547201508325","unresolved":true,"context_lines":[{"line_number":246,"context_line":"    def take_action(self, parsed_args):"},{"line_number":247,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":248,"context_line":"        show_method \u003d getattr("},{"line_number":249,"context_line":"            client, \u0027get_bgpvpn_%s_association\u0027 % self._assoc_res_name)"},{"line_number":250,"context_line":"        bgpvpn \u003d client.find_bgpvpn(parsed_args.bgpvpn)"},{"line_number":251,"context_line":"        obj \u003d show_method(bgpvpn[\u0027id\u0027],"},{"line_number":252,"context_line":"                          parsed_args.resource_association_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"50996525_b4427c76","line":249,"in_reply_to":"c2f44683_82cffdbc","updated":"2023-05-24 11:26:45.000000000","message":"Agree, I tend to keep these things, thanks for highlighting, I pushed a FUP:\nhttps://review.opendev.org/c/openstack/python-neutronclient/+/884180","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"}],"neutronclient/tests/unit/osc/v2/networking_bgpvpn/fakes.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d9c1f66eb671bb51f465a80b90c0d6e7708807a4","unresolved":true,"context_lines":[{"line_number":89,"context_line":"        # Overwrite default attributes."},{"line_number":90,"context_line":"        bgpvpn_attrs.update(attrs)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        return copy.deepcopy(bgpvpn_attrs)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @staticmethod"},{"line_number":95,"context_line":"    def create_bgpvpns(attrs\u003dNone, count\u003d1):"}],"source_content_type":"text/x-python","patch_set":4,"id":"2a30646d_605cf2c2","line":92,"updated":"2023-03-21 10:51:06.000000000","message":"This needs to be updated to return a BgpVpn object from SDK. You should also remove the class since it\u0027s not necessary, i.e.\n\n  def create_one_bgpvpn(attrs\u003dNone):\n      ...\n      return _bgpvpn.BgpVpn(**attrs)\n\n  def create_bgpvns(attrs\u003dNone, count\u003d1):\n      ...\n\nYou did this for other neutron resources in Ic4bc35c296a95d5dae92e9fc1cab3a3fa8f103cd, so you can use your own prior work as an example 😉","commit_id":"3e0e290bbc015afc2d28c5ea9dbec4630ae3df5d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0f25f39249addadb837762b94030515bded62a6e","unresolved":true,"context_lines":[{"line_number":89,"context_line":"        # Overwrite default attributes."},{"line_number":90,"context_line":"        bgpvpn_attrs.update(attrs)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        return copy.deepcopy(bgpvpn_attrs)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @staticmethod"},{"line_number":95,"context_line":"    def create_bgpvpns(attrs\u003dNone, count\u003d1):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb328e0_3d9ce919","line":92,"in_reply_to":"2a30646d_605cf2c2","updated":"2023-03-22 10:49:43.000000000","message":"true","commit_id":"3e0e290bbc015afc2d28c5ea9dbec4630ae3df5d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8eef70a5e354dda158923badc2c0974d6f488c3","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # Overwrite default attributes."},{"line_number":90,"context_line":"        bgpvpn_attrs.update(attrs)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        return copy.deepcopy(bgpvpn_attrs)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @staticmethod"},{"line_number":95,"context_line":"    def create_bgpvpns(attrs\u003dNone, count\u003d1):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5c1e39e2_aa2f4916","line":92,"in_reply_to":"9fb328e0_3d9ce919","updated":"2023-05-24 09:07:26.000000000","message":"Done","commit_id":"3e0e290bbc015afc2d28c5ea9dbec4630ae3df5d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8eef70a5e354dda158923badc2c0974d6f488c3","unresolved":true,"context_lines":[{"line_number":172,"context_line":"    pass"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"class FakeResoure(sdk_resource.Resource):"},{"line_number":176,"context_line":"    resource_key \u003d \u0027fakeresource\u0027"},{"line_number":177,"context_line":"    resources_key \u003d \u0027fakeresources\u0027"},{"line_number":178,"context_line":"    base_path \u003d \u0027/bgpvpn/fakeresources\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"c208358b_7ee9c1d8","line":175,"range":{"start_line":175,"start_character":6,"end_line":175,"end_character":17},"updated":"2023-05-24 09:07:26.000000000","message":"nit: FakeResource (missing \u0027c\u0027)","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a96205c2807a4ac96ea295341a57eda20d8c2fef","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    pass"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"class FakeResoure(sdk_resource.Resource):"},{"line_number":176,"context_line":"    resource_key \u003d \u0027fakeresource\u0027"},{"line_number":177,"context_line":"    resources_key \u003d \u0027fakeresources\u0027"},{"line_number":178,"context_line":"    base_path \u003d \u0027/bgpvpn/fakeresources\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"0c863df5_40ee3e5d","line":175,"range":{"start_line":175,"start_character":6,"end_line":175,"end_character":17},"in_reply_to":"c208358b_7ee9c1d8","updated":"2023-05-24 11:29:42.000000000","message":"Done","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8eef70a5e354dda158923badc2c0974d6f488c3","unresolved":true,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    id \u003d sdk_resource.Body(\u0027id\u0027)"},{"line_number":209,"context_line":"    tenant_id \u003d sdk_resource.Body(\u0027tenant_id\u0027, deprecated\u003dTrue)"},{"line_number":210,"context_line":"    project_id \u003d sdk_resource.Body(\u0027project_id\u0027, alias\u003d\u0027tenant_id\u0027)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"def create_one_resource(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"791a38e3_c8db9648","line":210,"updated":"2023-05-24 09:07:26.000000000","message":"Is this a real thing? Do we want to add it to OSC? I can only find \u0027BgpVpnRouterAssociation\u0027, \u0027BgpVpnNetworkAssociation\u0027 and \u0027BgpVpnPortAssociation\u0027 but they all use different paths.","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1f722afe66f7dcf6cd95841df7f80de93d95de43","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    id \u003d sdk_resource.Body(\u0027id\u0027)"},{"line_number":209,"context_line":"    tenant_id \u003d sdk_resource.Body(\u0027tenant_id\u0027, deprecated\u003dTrue)"},{"line_number":210,"context_line":"    project_id \u003d sdk_resource.Body(\u0027project_id\u0027, alias\u003d\u0027tenant_id\u0027)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"def create_one_resource(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"725ef0f0_c7489fba","line":210,"in_reply_to":"1ed504a2_ad6a0001","updated":"2023-05-24 12:43:47.000000000","message":"Ack","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a96205c2807a4ac96ea295341a57eda20d8c2fef","unresolved":true,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    id \u003d sdk_resource.Body(\u0027id\u0027)"},{"line_number":209,"context_line":"    tenant_id \u003d sdk_resource.Body(\u0027tenant_id\u0027, deprecated\u003dTrue)"},{"line_number":210,"context_line":"    project_id \u003d sdk_resource.Body(\u0027project_id\u0027, alias\u003d\u0027tenant_id\u0027)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"def create_one_resource(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ed504a2_ad6a0001","line":210,"in_reply_to":"791a38e3_c8db9648","updated":"2023-05-24 11:29:42.000000000","message":"this is only to make the testing of these resource association things easier.\nThe original author selected to move most of these things to common classes,and this causes that the code sometimes hard to follow, and results in FakeResoureAssociation which exaclty looks like a real resource from SDK.\nSo I don\u0027t think it should be in OSC or in SDK","commit_id":"02c383291e76339300250a0bafac017a5e5c79c3"}]}
