)]}'
{"oslo_messaging/_drivers/impl_pika.py":[{"author":{"_account_id":7109,"name":"Dmitry Mescheryakov (dmitryme)","email":"dmescheryakov@mirantis.com","username":"dmitryme"},"change_message_id":"c4a226c5db7b4a4f5547fa65f7fee6c90f863fb5","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                self._declare_rpc_exchange(exchange, timeout)"},{"line_number":240,"context_line":"            except pika_drv_exc.ConnectionException as e:"},{"line_number":241,"context_line":"                LOG.warn(\"Problem during declaring exchange. %\", e)"},{"line_number":242,"context_line":"            raise ex"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if reply is not None:"},{"line_number":245,"context_line":"            if reply.failure is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aed3d3a_74518462","line":242,"updated":"2016-02-25 22:18:54.000000000","message":"Here and below: we already process ExchangeNotFoundException in retrier in on_exception function. Why should we do it here again?","commit_id":"7b3c0adecdccd152f69693f3155c380deebca303"},{"author":{"_account_id":8601,"name":"Dmitriy Ukhlov","email":"dukhlov@mirantis.com","username":"dukhlov"},"change_message_id":"686d125821bf9fe22fedaf610e3b47d898f2d340","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                self._declare_rpc_exchange(exchange, timeout)"},{"line_number":240,"context_line":"            except pika_drv_exc.ConnectionException as e:"},{"line_number":241,"context_line":"                LOG.warn(\"Problem during declaring exchange. %\", e)"},{"line_number":242,"context_line":"            raise ex"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if reply is not None:"},{"line_number":245,"context_line":"            if reply.failure is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aed3d3a_8a5faf71","line":242,"in_reply_to":"9aed3d3a_74518462","updated":"2016-02-26 07:23:44.000000000","message":"retrier may be None","commit_id":"7b3c0adecdccd152f69693f3155c380deebca303"},{"author":{"_account_id":7109,"name":"Dmitry Mescheryakov (dmitryme)","email":"dmescheryakov@mirantis.com","username":"dmitryme"},"change_message_id":"c4a226c5db7b4a4f5547fa65f7fee6c90f863fb5","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                expiration_time\u003dexpiration_time,"},{"line_number":262,"context_line":"                retrier\u003dretrier"},{"line_number":263,"context_line":"            )"},{"line_number":264,"context_line":"        except pika_drv_exc.ExchangeNotFoundException:"},{"line_number":265,"context_line":"            try:"},{"line_number":266,"context_line":"                self._declare_rpc_exchange("},{"line_number":267,"context_line":"                    exchange, expiration_time - time.time()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aed3d3a_b44b0cb0","line":264,"updated":"2016-02-25 22:18:54.000000000","message":"The same question as above","commit_id":"7b3c0adecdccd152f69693f3155c380deebca303"},{"author":{"_account_id":7109,"name":"Dmitry Mescheryakov (dmitryme)","email":"dmescheryakov@mirantis.com","username":"dmitryme"},"change_message_id":"c4a226c5db7b4a4f5547fa65f7fee6c90f863fb5","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                )"},{"line_number":269,"context_line":"            except pika_drv_exc.ConnectionException as e:"},{"line_number":270,"context_line":"                LOG.warn(\"Problem during declaring exchange. %\", e)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _declare_notification_queue_binding(self, target, timeout\u003dNone):"},{"line_number":273,"context_line":"        if timeout is not None and timeout \u003c 0:"},{"line_number":274,"context_line":"            raise exceptions.MessagingTimeout("}],"source_content_type":"text/x-python","patch_set":7,"id":"9aed3d3a_f730f6a0","line":271,"updated":"2016-02-25 22:18:54.000000000","message":"Basically, the fanout and other cases are different only in several places:\n\n * routing key\n * mandatory flag\n * to re-throw or not the exception\n\nI personally would prefer these cases squeezed into a single code path to avoid code duplication, but that is just an opinion.","commit_id":"7b3c0adecdccd152f69693f3155c380deebca303"},{"author":{"_account_id":8601,"name":"Dmitriy Ukhlov","email":"dukhlov@mirantis.com","username":"dukhlov"},"change_message_id":"686d125821bf9fe22fedaf610e3b47d898f2d340","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                )"},{"line_number":269,"context_line":"            except pika_drv_exc.ConnectionException as e:"},{"line_number":270,"context_line":"                LOG.warn(\"Problem during declaring exchange. %\", e)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _declare_notification_queue_binding(self, target, timeout\u003dNone):"},{"line_number":273,"context_line":"        if timeout is not None and timeout \u003c 0:"},{"line_number":274,"context_line":"            raise exceptions.MessagingTimeout("}],"source_content_type":"text/x-python","patch_set":7,"id":"9aed3d3a_cafff732","line":271,"in_reply_to":"9aed3d3a_f730f6a0","updated":"2016-02-26 07:23:44.000000000","message":"Too many ifs on each layer. So I prefer to to split this two branches of logic in one place.","commit_id":"7b3c0adecdccd152f69693f3155c380deebca303"}]}
