)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3e964675713de3894dc8239ef4be5b5d827e0a43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d33d69c7_762f7655","updated":"2023-06-09 09:27:31.000000000","message":"sound a good start, thanks for working on it !\nI just have a few questions and comments.","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"}],"nova/network/security_group_api.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0bfd52808bbfe64e2b1b66d090852f33e474df8b","unresolved":true,"context_lines":[{"line_number":45,"context_line":"def _safe_find_security_group(client, name, context):"},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        sg \u003d client.find_security_group(name, ignore_missing\u003dFalse)"},{"line_number":48,"context_line":"        if sg.project_id !\u003d context.project_id:"},{"line_number":49,"context_line":"            raise sdk_exc.ResourceNotFound()"},{"line_number":50,"context_line":"        return sg.id"},{"line_number":51,"context_line":"    except sdk_exc.ResourceNotFound:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1c67b582_6a7a590f","line":48,"updated":"2023-05-29 11:52:06.000000000","message":"the only way you shoudl be abel to retirve a security group that is not for the current project is if you use an admin token which woudl be a bug or if the security group is shared with us using neutron rbac functionaltiy.\n\nso i think this is incorrectly we should not need to check \nsg.project_id !\u003d context.project_id\n\neither we shoudl be passign in a non admin client or the shared security group shoudl be allowed and not filtered.","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3e964675713de3894dc8239ef4be5b5d827e0a43","unresolved":true,"context_lines":[{"line_number":45,"context_line":"def _safe_find_security_group(client, name, context):"},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        sg \u003d client.find_security_group(name, ignore_missing\u003dFalse)"},{"line_number":48,"context_line":"        if sg.project_id !\u003d context.project_id:"},{"line_number":49,"context_line":"            raise sdk_exc.ResourceNotFound()"},{"line_number":50,"context_line":"        return sg.id"},{"line_number":51,"context_line":"    except sdk_exc.ResourceNotFound:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c9d66766_55dd8f25","line":48,"in_reply_to":"1c67b582_6a7a590f","updated":"2023-06-09 09:27:31.000000000","message":"Agreed, shouldn\u0027t be managed on the client side, IMHO.","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3e964675713de3894dc8239ef4be5b5d827e0a43","unresolved":true,"context_lines":[{"line_number":76,"context_line":"    :raises SecurityGroupNotFound: If there\u0027s no match for the provided name."},{"line_number":77,"context_line":"    :raises NeutronClientException: For all other exceptions."},{"line_number":78,"context_line":"    \"\"\""},{"line_number":79,"context_line":"    return _safe_find_security_group("},{"line_number":80,"context_line":"        utils.get_sdk_adapter(\u0027network\u0027), name, context)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7301aae7_c5b00c2e","line":79,"updated":"2023-06-09 09:27:31.000000000","message":"fwiw, I feel we don\u0027t need a private helper method here.","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0bfd52808bbfe64e2b1b66d090852f33e474df8b","unresolved":true,"context_lines":[{"line_number":241,"context_line":"    except sdk_exc.BadRequest as e:"},{"line_number":242,"context_line":"        raise exception.Invalid(str(e))"},{"line_number":243,"context_line":"    except sdk_exc.HttpException:"},{"line_number":244,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":245,"context_line":"            LOG.exception(\"Neutron Error creating security group %s\", name)"},{"line_number":246,"context_line":"    return _convert_to_nova_security_group_format(security_group)"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"d79ca4c6_3c3c1528","line":244,"range":{"start_line":244,"start_character":8,"end_line":244,"end_character":51},"updated":"2023-05-29 11:52:06.000000000","message":"i note this later but here and throughout you should not add new usages of \n\nwith excutils.save_and_reraise_exception():\n\nthis is nologner required since we dropped pyton 2.7 support \n\njust use \"raise\" or \"raise e\" instead","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3e964675713de3894dc8239ef4be5b5d827e0a43","unresolved":true,"context_lines":[{"line_number":241,"context_line":"    except sdk_exc.BadRequest as e:"},{"line_number":242,"context_line":"        raise exception.Invalid(str(e))"},{"line_number":243,"context_line":"    except sdk_exc.HttpException:"},{"line_number":244,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":245,"context_line":"            LOG.exception(\"Neutron Error creating security group %s\", name)"},{"line_number":246,"context_line":"    return _convert_to_nova_security_group_format(security_group)"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"e3d132d5_68dc4a6c","line":244,"range":{"start_line":244,"start_character":8,"end_line":244,"end_character":51},"in_reply_to":"d79ca4c6_3c3c1528","updated":"2023-06-09 09:27:31.000000000","message":"Agreed, this is no longer a problem since Py3.","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0bfd52808bbfe64e2b1b66d090852f33e474df8b","unresolved":true,"context_lines":[{"line_number":371,"context_line":"    except sdk_exc.BadRequest as e:"},{"line_number":372,"context_line":"        raise exception.Invalid(str(e))"},{"line_number":373,"context_line":"    except sdk_exc.HttpException:"},{"line_number":374,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":375,"context_line":"            LOG.exception(\"Neutron Error creating security group rule %s\","},{"line_number":376,"context_line":"                          vals)"},{"line_number":377,"context_line":"    converted_rules \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"8dd43bfa_76edb8f4","line":374,"range":{"start_line":374,"start_character":9,"end_line":374,"end_character":51},"updated":"2023-05-29 11:52:06.000000000","message":"we shoudl not be using this anymore\n\njust call raise again.\n\nthis was only used for python 2 compatiablty to workotund how python 2 tracebacks worked.","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"}],"nova/tests/fixtures/neutron.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"22e7564def83fb989a4aa9fee36bc97ff441bc4c","unresolved":true,"context_lines":[{"line_number":864,"context_line":"        return {\u0027ports\u0027: ports}"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    def ports(self, **_params):"},{"line_number":867,"context_line":"        return self.list_ports(True, **_params)[\u0027ports\u0027]"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    def show_network(self, network_id, **_params):"},{"line_number":870,"context_line":"        if network_id not in self._networks:"}],"source_content_type":"text/x-python","patch_set":6,"id":"968ceae5_7e43f495","line":867,"updated":"2023-05-23 13:53:31.000000000","message":"How to handle the is_admin point. with neutronclient it was extracted from context but with get_sdk_adapter that a bit different","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0bfd52808bbfe64e2b1b66d090852f33e474df8b","unresolved":true,"context_lines":[{"line_number":864,"context_line":"        return {\u0027ports\u0027: ports}"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    def ports(self, **_params):"},{"line_number":867,"context_line":"        return self.list_ports(True, **_params)[\u0027ports\u0027]"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    def show_network(self, network_id, **_params):"},{"line_number":870,"context_line":"        if network_id not in self._networks:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c0abd370_bd8c9de7","line":867,"in_reply_to":"968ceae5_7e43f495","updated":"2023-05-29 11:52:06.000000000","message":"we will need to adapt to that and unifythe interface.\nfor the sdk thsi is handedl by creating an admin cleint right\n\nwe will have to likely adapt nova ot do that first and remvoe the useage for is_admin","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3e964675713de3894dc8239ef4be5b5d827e0a43","unresolved":true,"context_lines":[{"line_number":864,"context_line":"        return {\u0027ports\u0027: ports}"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    def ports(self, **_params):"},{"line_number":867,"context_line":"        return self.list_ports(True, **_params)[\u0027ports\u0027]"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    def show_network(self, network_id, **_params):"},{"line_number":870,"context_line":"        if network_id not in self._networks:"}],"source_content_type":"text/x-python","patch_set":6,"id":"83bb406e_84e05c08","line":867,"in_reply_to":"c0abd370_bd8c9de7","updated":"2023-06-09 09:27:31.000000000","message":"not sure I understand the problem with is_admin ? Is it the fact that with the SDK, the adminness is only set at initialization of the instance object ?","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"}],"nova/tests/fixtures/nova.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3e964675713de3894dc8239ef4be5b5d827e0a43","unresolved":false,"context_lines":[{"line_number":1595,"context_line":"        self.useFixture(fixtures.MockPatch("},{"line_number":1596,"context_line":"            \u0027openstack.proxy.Proxy.get_endpoint\u0027))"},{"line_number":1597,"context_line":"        real_make_proxy \u003d service_description.ServiceDescription._make_proxy"},{"line_number":1598,"context_line":"        _stub_service_types \u003d {\u0027placement\u0027, \u0027network\u0027}"},{"line_number":1599,"context_line":""},{"line_number":1600,"context_line":"        def fake_make_proxy(self, instance):"},{"line_number":1601,"context_line":"            if self.service_type in _stub_service_types:"}],"source_content_type":"text/x-python","patch_set":6,"id":"6748ea42_43a78402","line":1598,"updated":"2023-06-09 09:27:31.000000000","message":"++","commit_id":"b4637c3dfde79348e3a0b265edaf9bcc05af2a7d"}]}
