)]}'
{"zaqar/transport/extraspec_handler.py":[{"author":{"_account_id":28367,"name":"Zijian Guo","email":"guozijn@gmail.com","username":"ZijianGuo"},"change_message_id":"6d2dc1c92132727380f3ae597cef42c7c53cdf75","unresolved":true,"context_lines":[{"line_number":34,"context_line":"        self._conf.register_opts(transport.ALL_OPTS,"},{"line_number":35,"context_line":"                                 group\u003dtransport.GROUP_NAME)"},{"line_number":36,"context_line":"        # this map could be extended by developers according their needs."},{"line_number":37,"context_line":"        self._handler_map \u003d {\"message_authentication_code_handler\":"},{"line_number":38,"context_line":"                             MessageAuthenticationCodeHandler()}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def get_handler(self, extra_spec):"},{"line_number":41,"context_line":"        if extra_spec and isinstance(extra_spec.get(\"handler\"), str):"}],"source_content_type":"text/x-python","patch_set":5,"id":"d2bc40d7_ffab7ae5","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":64},"updated":"2021-02-08 04:17:45.000000000","message":"Is it more elegant to write the handler into entry_points?","commit_id":"e1b1f6bdfbd6c971dbe7e7d7780057cc6c32f752"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"8a498ca4e9dfe052248ac2c5b532d68d3d437ad2","unresolved":true,"context_lines":[{"line_number":34,"context_line":"        self._conf.register_opts(transport.ALL_OPTS,"},{"line_number":35,"context_line":"                                 group\u003dtransport.GROUP_NAME)"},{"line_number":36,"context_line":"        # this map could be extended by developers according their needs."},{"line_number":37,"context_line":"        self._handler_map \u003d {\"message_authentication_code_handler\":"},{"line_number":38,"context_line":"                             MessageAuthenticationCodeHandler()}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def get_handler(self, extra_spec):"},{"line_number":41,"context_line":"        if extra_spec and isinstance(extra_spec.get(\"handler\"), str):"}],"source_content_type":"text/x-python","patch_set":5,"id":"f5cd5d6f_17c778bc","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":64},"in_reply_to":"44761cfd_b9fcf82e","updated":"2021-02-26 02:01:29.000000000","message":"Sure, That\u0027s better.","commit_id":"e1b1f6bdfbd6c971dbe7e7d7780057cc6c32f752"},{"author":{"_account_id":24849,"name":"yao ning","email":"zay11022@163.com","username":"mslovy"},"change_message_id":"ae19966e1423d6c703739b32b5ccaf36814b3090","unresolved":true,"context_lines":[{"line_number":34,"context_line":"        self._conf.register_opts(transport.ALL_OPTS,"},{"line_number":35,"context_line":"                                 group\u003dtransport.GROUP_NAME)"},{"line_number":36,"context_line":"        # this map could be extended by developers according their needs."},{"line_number":37,"context_line":"        self._handler_map \u003d {\"message_authentication_code_handler\":"},{"line_number":38,"context_line":"                             MessageAuthenticationCodeHandler()}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def get_handler(self, extra_spec):"},{"line_number":41,"context_line":"        if extra_spec and isinstance(extra_spec.get(\"handler\"), str):"}],"source_content_type":"text/x-python","patch_set":5,"id":"44761cfd_b9fcf82e","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":64},"in_reply_to":"d2bc40d7_ffab7ae5","updated":"2021-02-09 10:36:56.000000000","message":"agree, we need a dynamic plugin loading mechanism like stevedore. and can load out-of-tree plugin code here","commit_id":"e1b1f6bdfbd6c971dbe7e7d7780057cc6c32f752"}],"zaqar/transport/wsgi/v2_0/subscriptions.py":[{"author":{"_account_id":24849,"name":"yao ning","email":"zay11022@163.com","username":"mslovy"},"change_message_id":"f50c5c811f921ba812e5e9a5a63cabd6ac04ac23","unresolved":true,"context_lines":[{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            self._validate.subscription_confirming(document)"},{"line_number":272,"context_line":"            confirmed \u003d document.get(\u0027confirmed\u0027)"},{"line_number":273,"context_line":"            extra_spec \u003d document.get(\u0027extra_spec\u0027)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"            handler \u003d self._extraspec_factory.get_handler(extra_spec)"},{"line_number":276,"context_line":"            if handler:"},{"line_number":277,"context_line":"                handler.extraspec_handle(extra_spec)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"            self._subscription_controller.confirm(queue_name, subscription_id,"},{"line_number":280,"context_line":"                                                  project\u003dproject_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5b23b32d_67a028c6","line":277,"range":{"start_line":273,"start_character":0,"end_line":277,"end_character":52},"updated":"2021-02-09 10:33:46.000000000","message":"https://opendev.org/openstack/zaqar/src/branch/master/zaqar/transport/wsgi/driver.py#L89\nhttps://opendev.org/openstack/zaqar/src/branch/master/zaqar/transport/wsgi/driver.py#L159\n\nI think we should make more consideration on HeadersAuth. For email confirmation, keystoneauth will be skipped if SignedHeaderAuth is passed since the confirmation method require user to click a URL in email content.\n\nDo you think in some circumstance, the confirmation is not a directlly post or put method by users, otherwise a email like confirmation may also need a plugin for HeadersAuth Hook?","commit_id":"e1b1f6bdfbd6c971dbe7e7d7780057cc6c32f752"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"8a498ca4e9dfe052248ac2c5b532d68d3d437ad2","unresolved":true,"context_lines":[{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            self._validate.subscription_confirming(document)"},{"line_number":272,"context_line":"            confirmed \u003d document.get(\u0027confirmed\u0027)"},{"line_number":273,"context_line":"            extra_spec \u003d document.get(\u0027extra_spec\u0027)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"            handler \u003d self._extraspec_factory.get_handler(extra_spec)"},{"line_number":276,"context_line":"            if handler:"},{"line_number":277,"context_line":"                handler.extraspec_handle(extra_spec)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"            self._subscription_controller.confirm(queue_name, subscription_id,"},{"line_number":280,"context_line":"                                                  project\u003dproject_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bd73c157_df0ce18c","line":277,"range":{"start_line":273,"start_character":0,"end_line":277,"end_character":52},"in_reply_to":"5b23b32d_67a028c6","updated":"2021-02-26 02:01:29.000000000","message":"Indeed, I think some confirmations will not expose a directly URL to user, for example, the confirmation in some mobile apps. But IMO the email way may not need some more extra information for confirmation process, that don\u0027t need the extra headersAuth hook besides the SignedHeaderAuth hook.\n\nSo basically, I think we can improve it like this: add a new HeaderAuth to handler the extra specs in request headers, and using entry points to load the handler of extra specs.","commit_id":"e1b1f6bdfbd6c971dbe7e7d7780057cc6c32f752"},{"author":{"_account_id":24849,"name":"yao ning","email":"zay11022@163.com","username":"mslovy"},"change_message_id":"5933d6eaa24931ae813b95272d5230fda606ab1e","unresolved":true,"context_lines":[{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            self._validate.subscription_confirming(document)"},{"line_number":272,"context_line":"            confirmed \u003d document.get(\u0027confirmed\u0027)"},{"line_number":273,"context_line":"            extra_spec \u003d document.get(\u0027extra_spec\u0027)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"            handler \u003d self._extraspec_factory.get_handler(extra_spec)"},{"line_number":276,"context_line":"            if handler:"},{"line_number":277,"context_line":"                handler.extraspec_handle(extra_spec)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"            self._subscription_controller.confirm(queue_name, subscription_id,"},{"line_number":280,"context_line":"                                                  project\u003dproject_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"51ca8528_dcc4871f","line":277,"range":{"start_line":273,"start_character":0,"end_line":277,"end_character":52},"in_reply_to":"bd73c157_df0ce18c","updated":"2021-02-26 05:31:08.000000000","message":"Agree!","commit_id":"e1b1f6bdfbd6c971dbe7e7d7780057cc6c32f752"}]}
