)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"change_message_id":"7f52e0cec1e4eff063bcf354d6dbc6d43afcce5d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  - The options parameter is not actually used."},{"line_number":15,"context_line":"  - This new feature opens the doors for new implementations"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This is part of:  #1661510"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Iff23a9344c2c87259cf36b0d14c0a9fc075a2a72"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9fb8cfa7_13c77998","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":15},"updated":"2019-06-12 14:06:14.000000000","message":"Launchpad doesn\u0027t recognize this text so it will not automatically update the bug status for you.\n\nYou should use \"Partial-Bug:\" since it\u0027s part of the solution to #1661510\n\nSee https://docs.openstack.org/infra/manual/developers.html#working-on-bugs","commit_id":"5cbc34e946b45d730c2e5664de2e9c78231bf441"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"43cef1b7e18d65796c62b30e4624006f988c2c0c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  - The transport_options parameter is not actually used (yet)."},{"line_number":17,"context_line":"  - This part of blueprint transport-options  (first part)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint transport-options"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Iff23a9344c2c87259cf36b0d14c0a9fc075a2a72"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9fb8cfa7_9aa350b2","line":19,"updated":"2019-06-14 11:31:03.000000000","message":"Doesn\u0027t work... Launchpad return: \"No feature specifications match your criteria.\"","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"020da6e027ad5a30425cabbde3e2bad3c8d03066","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  - The transport_options parameter is not actually used (yet)."},{"line_number":17,"context_line":"  - This part of blueprint transport-options  (first part)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint transport-options"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Iff23a9344c2c87259cf36b0d14c0a9fc075a2a72"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9fb8cfa7_9af2706f","line":19,"in_reply_to":"9fb8cfa7_9aa350b2","updated":"2019-06-14 11:44:09.000000000","message":"seen it, but actually here [1] is recognised. \nWil try to understand why \n\n1 - https://blueprints.launchpad.net/oslo.messaging/+spec/transport-options","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"44851e42cfe22ed7e5be8d90dfb3b67e5199c7b9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  - The transport_options parameter is not actually used (yet)."},{"line_number":17,"context_line":"  - This part of blueprint transport-options  (first part)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint transport-options"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Iff23a9344c2c87259cf36b0d14c0a9fc075a2a72"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9fb8cfa7_1a79a0c6","line":19,"in_reply_to":"9fb8cfa7_9af2706f","updated":"2019-06-14 11:49:02.000000000","message":"Yeah I agree it\u0027s weird","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"cee8a8e90c4fa21b3d6e175884c217f0a16a8756","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint transport-options"},{"line_number":20,"context_line":"The blueprint link is"},{"line_number":21,"context_line":"https://blueprints.launchpad.net/oslo.messaging/+spec/transport-options"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Iff23a9344c2c87259cf36b0d14c0a9fc075a2a72"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9fb8cfa7_53a06390","line":21,"updated":"2019-06-14 13:57:23.000000000","message":"haha \"switch to plan B guys\" :)\n\nWork for me","commit_id":"83266cc6ea7dbe682f8fdb960a548c68fd1235b5"}],"oslo_messaging/_drivers/amqp.py":[{"author":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"change_message_id":"7f52e0cec1e4eff063bcf354d6dbc6d43afcce5d","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class RpcContext(rpc_common.CommonRpcContext):"},{"line_number":47,"context_line":"    \"\"\"Context that supports replying to a rpc.call.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def __init__(self, **kwargs):"},{"line_number":50,"context_line":"        self.msg_id \u003d kwargs.pop(\u0027msg_id\u0027, None)"},{"line_number":51,"context_line":"        self.reply_q \u003d kwargs.pop(\u0027reply_q\u0027, None)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9fb8cfa7_93a289ad","line":48,"updated":"2019-06-12 14:06:14.000000000","message":"nit: Why the changes in whitespace?  There are similar changes - adding or removing a blank line without any related code changes - in other files in this patch.\n\nYou can limit the size of this patch by avoiding these types of changes (this file especially given it is the only change).","commit_id":"5cbc34e946b45d730c2e5664de2e9c78231bf441"}],"oslo_messaging/_drivers/base.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a8a23d16dd3d47995b6b1088508321c8ee08353d","unresolved":false,"context_lines":[{"line_number":438,"context_line":"        :type retry: int"},{"line_number":439,"context_line":"        :returns: A reply message or None if no reply expected"},{"line_number":440,"context_line":"        :type options: dictionary"},{"line_number":441,"context_line":"        :returns: Additional information during the send."},{"line_number":442,"context_line":"            for example can be used for `mandatory` flag"},{"line_number":443,"context_line":"        :raises: :py:exc:`MessagingException`, any exception thrown by the"},{"line_number":444,"context_line":"            remote server when executing the RPC call."}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_e81a01ca","line":441,"range":{"start_line":441,"start_character":8,"end_line":441,"end_character":17},"updated":"2019-06-11 21:34:33.000000000","message":"Oh, oops. I missed this the first time through. This isn\u0027t a return value, it\u0027s a description of the param. I think this new block should look like:\n\n  :param options: Additional information during the send.\n            for example can be used for `mandatory` flag\n  :type options: dictionary\n        \n(the indentation will probably be screwy, but you get the idea)\n\nIt should also probably go above the :returns: on line 439 just to keep the param descriptions in the same place.","commit_id":"50a59fad26de0a8a2bb1c4ed31211442cc4c25f6"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"c7669fa972916773debe8df38866069c61624d43","unresolved":false,"context_lines":[{"line_number":438,"context_line":"        :type retry: int"},{"line_number":439,"context_line":"        :returns: A reply message or None if no reply expected"},{"line_number":440,"context_line":"        :type options: dictionary"},{"line_number":441,"context_line":"        :returns: Additional information during the send."},{"line_number":442,"context_line":"            for example can be used for `mandatory` flag"},{"line_number":443,"context_line":"        :raises: :py:exc:`MessagingException`, any exception thrown by the"},{"line_number":444,"context_line":"            remote server when executing the RPC call."}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_04d5f9e4","line":441,"range":{"start_line":441,"start_character":8,"end_line":441,"end_character":17},"in_reply_to":"9fb8cfa7_e81a01ca","updated":"2019-06-12 08:21:35.000000000","message":"my fault. Sorry.","commit_id":"50a59fad26de0a8a2bb1c4ed31211442cc4c25f6"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"da4077495770089e9c3f08ac28bd938f0f29e348","unresolved":false,"context_lines":[{"line_number":434,"context_line":"            call to complete or receive a message heartbeat indicating the"},{"line_number":435,"context_line":"            remote side is still executing."},{"line_number":436,"context_line":"        :type call_monitor_timeout: float"},{"line_number":437,"context_line":"        :param options: Additional information during the send."},{"line_number":438,"context_line":"            for example can be used for `mandatory` flag"},{"line_number":439,"context_line":"        :type options: dictionary"},{"line_number":440,"context_line":"        :param retry: maximum message send attempts permitted"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_d8749e38","line":437,"updated":"2019-06-12 12:38:09.000000000","message":"A minor change, can you keep the parameter order similar to the method signature (retry before options)","commit_id":"082e2a0ffd6c7c63d9334cc079bd6731cd7f91ef"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"357f28aae357389aeb9db5d18d1a2270477362d8","unresolved":false,"context_lines":[{"line_number":434,"context_line":"            call to complete or receive a message heartbeat indicating the"},{"line_number":435,"context_line":"            remote side is still executing."},{"line_number":436,"context_line":"        :type call_monitor_timeout: float"},{"line_number":437,"context_line":"        :param options: Additional information during the send."},{"line_number":438,"context_line":"            for example can be used for `mandatory` flag"},{"line_number":439,"context_line":"        :type options: dictionary"},{"line_number":440,"context_line":"        :param retry: maximum message send attempts permitted"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_98b946cd","line":437,"in_reply_to":"9fb8cfa7_d8749e38","updated":"2019-06-12 12:44:20.000000000","message":"you are right :)!\nFixed!","commit_id":"082e2a0ffd6c7c63d9334cc079bd6731cd7f91ef"}],"oslo_messaging/_drivers/impl_fake.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a60caf0997b2860bfa7fcabcb51db46de4dfb3d1","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        json.dumps(message)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def _send(self, target, ctxt, message, wait_for_reply\u003dNone, timeout\u003dNone,"},{"line_number":192,"context_line":"              _options\u003dNone):"},{"line_number":193,"context_line":"        self._check_serialize(message)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        exchange \u003d self._exchange_manager.get_exchange(target.exchange)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_75a7cfbe","line":192,"range":{"start_line":192,"start_character":14,"end_line":192,"end_character":15},"updated":"2019-06-11 17:20:39.000000000","message":"I don\u0027t think you want to prefix this with _","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"df0a4485e98098be65d9a152921ecbf6d0149ed3","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        json.dumps(message)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def _send(self, target, ctxt, message, wait_for_reply\u003dNone, timeout\u003dNone,"},{"line_number":192,"context_line":"              _options\u003dNone):"},{"line_number":193,"context_line":"        self._check_serialize(message)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        exchange \u003d self._exchange_manager.get_exchange(target.exchange)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_41f52dec","line":192,"range":{"start_line":192,"start_character":14,"end_line":192,"end_character":15},"in_reply_to":"9fb8cfa7_75a7cfbe","updated":"2019-06-11 20:07:26.000000000","message":"please see the other comment in \"impl_rabbit\"","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"}],"oslo_messaging/_drivers/impl_rabbit.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d521709ded02c68097d8b8660d3e83ce06a26aaf","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_4d9284a0","line":763,"range":{"start_line":760,"start_character":7,"end_line":763,"end_character":17},"updated":"2019-06-07 01:42:05.000000000","message":"the main drawback to this approch is that it requires client to set this option as it not used by defualt.\n\nnova is expecting the retry behavior to already handel redeclaring the queus on topic send but we recently have been looking at two issue that i think are realted to the queue not being redeclared by the send when a rabbit host is restared and the compute nodes that were using that host dont automatically redeclare the queue.\n\nrestarting the coumpute services fixes the issue but we had been expecting the heatbeat to be enought to fix that and it looks like it may not be.\n\nsimiarly for the eventlet/wsgi issue we were having we had some concners that the recovery that was happening was not always redeclaring the queues properly so we proably woudl want this to be handelded internally by oslo messaging\nto actully have the behavior we thought was being guranteed by the auto retry on publish that is already done.","commit_id":"e27e136e1d181c059972a9e875d3bff99aa2cd4f"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"7b9ddf4c2f96c31ebb58cc29497c4b223f2642c8","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_63fe7938","line":763,"range":{"start_line":760,"start_character":7,"end_line":763,"end_character":17},"in_reply_to":"9fb8cfa7_4d9284a0","updated":"2019-06-07 07:48:21.000000000","message":"\u003e the main drawback to this approch is that it requires client to set\n \u003e this option as it not used by default.\nYes, we have to maintain the compatibility with the current behavior, we can\u0027t enable it by default.\n\nI got what you mean but, like Melanie, I didn\u0027t understand the -1\nWhat would you suggest?","commit_id":"e27e136e1d181c059972a9e875d3bff99aa2cd4f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"36e8a9291c15c36beb2aef72a0a3b4a38585944f","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_a84bee28","line":763,"range":{"start_line":760,"start_character":7,"end_line":763,"end_character":17},"in_reply_to":"9fb8cfa7_4d9284a0","updated":"2019-06-07 04:11:49.000000000","message":"\u003e the main drawback to this approch is that it requires client to set\n \u003e this option as it not used by defualt.\n\nIs your -1 because you are suggesting this patch go ahead and set the mandatory flag by default instead of passing generic options through?","commit_id":"e27e136e1d181c059972a9e875d3bff99aa2cd4f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"46bfb02ad5bc83aca894c52a5868edf0b57d00b4","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_2fda844b","line":763,"range":{"start_line":760,"start_character":7,"end_line":763,"end_character":17},"in_reply_to":"9fb8cfa7_63fe7938","updated":"2019-06-10 11:35:16.000000000","message":"sorry yes the -1 was to suggest we should not nessisarly push this to the caller to manage the retry and i wanted to discuss if we should handle this internally.","commit_id":"e27e136e1d181c059972a9e875d3bff99aa2cd4f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7aa75a7de7f9233671b523727c5cce791ae03b22","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_6f715c0c","line":763,"range":{"start_line":760,"start_character":8,"end_line":763,"end_character":17},"updated":"2019-06-10 12:09:50.000000000","message":"we can handle this in nova i guess by trying to recreate the exchange and queue then submit the message again.\n\nwe may want the flexibility for the client to make that choice but if we have not hit the retry limit then we may want oslo to do that on the client behalf?\n\ni guess either is fine i just would have expected ensure\nto try and recover from this if the retry limit is not hit.","commit_id":"6744c9e8bc906619052e9f50b008ec2a235766ce"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6d6c37c494d169537bb89ad32c5b9978b15d7c8a","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_696157d3","line":763,"range":{"start_line":760,"start_character":8,"end_line":763,"end_character":17},"in_reply_to":"9fb8cfa7_4a6b2684","updated":"2019-06-10 14:11:10.000000000","message":"ya thats fair and its why it was a question of should we handel this internally or not.\n\nif we wanted to handle this internally it could certainly be a separate patch but we can also try and use this from nova and see if this is something we would want to use selectively or for all calls and just that to inform if internal handling is a useful feature to add later.\n\nin nova\u0027s case its unclear if we want to create the queue if id does not exist when the api tries to call a compute node.\n\nnova will only call a compute node if it exist in its database which means it should have a topic queue for the api to send a call too. but as was discussed in the original bug creating the queue could result in the queue filling up if the agent never retruns so its not clear that is the right thing to do.","commit_id":"6744c9e8bc906619052e9f50b008ec2a235766ce"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8ef73c954b298824600717b858a92ee440bf0e6e","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_12f1db01","line":763,"range":{"start_line":760,"start_character":8,"end_line":763,"end_character":17},"in_reply_to":"9fb8cfa7_696157d3","updated":"2019-06-10 19:44:04.000000000","message":"If we\u0027re not 100% sure what the usage pattern for this is going to look like, I\u0027m +1 on implementing the simple(-ish) thing and then pulling common patterns out of consumers once we start to understand how they\u0027re going to use it.","commit_id":"6744c9e8bc906619052e9f50b008ec2a235766ce"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"20b686faabd394883844ba6e74507d4f08b58206","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            # NOTE(sileht): we must reraise this without"},{"line_number":758,"context_line":"            # trigger error_callback"},{"line_number":759,"context_line":"            raise"},{"line_number":760,"context_line":"        except exceptions.MessageUndeliverable:"},{"line_number":761,"context_line":"            # NOTE(gsantomaggio): we must reraise this without"},{"line_number":762,"context_line":"            # trigger error_callback"},{"line_number":763,"context_line":"            raise"},{"line_number":764,"context_line":"        except Exception as exc:"},{"line_number":765,"context_line":"            error_callback and error_callback(exc)"},{"line_number":766,"context_line":"            self._set_current_channel(None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_4a6b2684","line":763,"range":{"start_line":760,"start_character":8,"end_line":763,"end_character":17},"in_reply_to":"9fb8cfa7_6f715c0c","updated":"2019-06-10 12:51:34.000000000","message":"\u003ewe may want the flexibility for the client to make that choice\n\nbasically Yes.\nThat\u0027s the reasons:\n\n1- I would avoid to set it by default, maybe you don\u0027t need to \"retry\" to send the message. For example, if you want just to dispatch the message.\n\n\n2- With this PR I\u0027d like to add the new params \"options\" so we can use it in the future to make oslo.messaging more flexible\n\n\n3- This PR is enough \"big\" and I didn\u0027t want to add too many features at the same time. \n\ndoes it make sense? :)","commit_id":"6744c9e8bc906619052e9f50b008ec2a235766ce"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a60caf0997b2860bfa7fcabcb51db46de4dfb3d1","unresolved":false,"context_lines":[{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    def _publish_and_creates_default_queue(self, exchange, msg,"},{"line_number":1146,"context_line":"                                           routing_key\u003dNone, timeout\u003dNone,"},{"line_number":1147,"context_line":"                                           _options\u003dNone):"},{"line_number":1148,"context_line":"        \"\"\"Publisher that declares a default queue"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"        When the exchange is missing instead of silently creates an exchange"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_d5955b41","line":1147,"range":{"start_line":1147,"start_character":43,"end_line":1147,"end_character":44},"updated":"2019-06-11 17:20:39.000000000","message":"Likewise on _.","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a8a23d16dd3d47995b6b1088508321c8ee08353d","unresolved":false,"context_lines":[{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    def _publish_and_creates_default_queue(self, exchange, msg,"},{"line_number":1146,"context_line":"                                           routing_key\u003dNone, timeout\u003dNone,"},{"line_number":1147,"context_line":"                                           _options\u003dNone):"},{"line_number":1148,"context_line":"        \"\"\"Publisher that declares a default queue"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"        When the exchange is missing instead of silently creates an exchange"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_88fd856f","line":1147,"range":{"start_line":1147,"start_character":43,"end_line":1147,"end_character":44},"in_reply_to":"9fb8cfa7_0500a0aa","updated":"2019-06-11 21:34:33.000000000","message":"Yeah, none of this is public, but I\u0027d rather keep the names consistent across drivers so if someone does start passing the argument by name it doesn\u0027t break on some drivers because they have a different name for it.\n\nWe should document what options are recognized by a given function once we start to actually use this, so we could just add a note that options is ignored for these particular functions.","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"c7669fa972916773debe8df38866069c61624d43","unresolved":false,"context_lines":[{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    def _publish_and_creates_default_queue(self, exchange, msg,"},{"line_number":1146,"context_line":"                                           routing_key\u003dNone, timeout\u003dNone,"},{"line_number":1147,"context_line":"                                           _options\u003dNone):"},{"line_number":1148,"context_line":"        \"\"\"Publisher that declares a default queue"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"        When the exchange is missing instead of silently creates an exchange"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_24fb5d79","line":1147,"range":{"start_line":1147,"start_character":43,"end_line":1147,"end_character":44},"in_reply_to":"9fb8cfa7_88fd856f","updated":"2019-06-12 08:21:35.000000000","message":"renamed :)!","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"df0a4485e98098be65d9a152921ecbf6d0149ed3","unresolved":false,"context_lines":[{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    def _publish_and_creates_default_queue(self, exchange, msg,"},{"line_number":1146,"context_line":"                                           routing_key\u003dNone, timeout\u003dNone,"},{"line_number":1147,"context_line":"                                           _options\u003dNone):"},{"line_number":1148,"context_line":"        \"\"\"Publisher that declares a default queue"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"        When the exchange is missing instead of silently creates an exchange"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_e1d1c1fc","line":1147,"range":{"start_line":1147,"start_character":43,"end_line":1147,"end_character":44},"in_reply_to":"9fb8cfa7_d5955b41","updated":"2019-06-11 20:07:26.000000000","message":"In most languages, \"_xx\" means unused parameters. Since \"options\" here is not used (yet) I put \"_\". \nIf you prefer I can remove it btw.\nty!","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b8f43e6a7d85095a0b1982fbec3a877db205cc11","unresolved":false,"context_lines":[{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    def _publish_and_creates_default_queue(self, exchange, msg,"},{"line_number":1146,"context_line":"                                           routing_key\u003dNone, timeout\u003dNone,"},{"line_number":1147,"context_line":"                                           _options\u003dNone):"},{"line_number":1148,"context_line":"        \"\"\"Publisher that declares a default queue"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"        When the exchange is missing instead of silently creates an exchange"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_0500a0aa","line":1147,"range":{"start_line":1147,"start_character":43,"end_line":1147,"end_character":44},"in_reply_to":"9fb8cfa7_e1d1c1fc","updated":"2019-06-11 20:38:14.000000000","message":"that idiom is not used in python because the paramater names are part of the public signature of the function which means if you use it in the future and remvoe the _ you are technically breaking the public api compatablity.\n\nthis would therefor cause issue with inheritence as the name change in the base could break invocations of the overload on the drived class.\n\nin languages like java or c or c++ where we do not have named paramaters teh parmater name in the function defintion is not part of function signiture, only the types are but for lanaguge like python or c# where they are its problematic.","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"}],"oslo_messaging/rpc/client.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"43cef1b7e18d65796c62b30e4624006f988c2c0c","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        self._check_version_cap(msg.get(\u0027version\u0027))"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            result \u003d \\"},{"line_number":177,"context_line":"                self.transport._send(self.target, msg_ctxt, msg,"},{"line_number":178,"context_line":"                                     wait_for_reply\u003dTrue, timeout\u003dtimeout,"},{"line_number":179,"context_line":"                                     call_monitor_timeout\u003dcm_timeout,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fb8cfa7_9ad5901e","line":176,"updated":"2019-06-14 11:31:03.000000000","message":"I think you don\u0027t need to break the line here","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"cee8a8e90c4fa21b3d6e175884c217f0a16a8756","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        self._check_version_cap(msg.get(\u0027version\u0027))"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            result \u003d \\"},{"line_number":177,"context_line":"                self.transport._send(self.target, msg_ctxt, msg,"},{"line_number":178,"context_line":"                                     wait_for_reply\u003dTrue, timeout\u003dtimeout,"},{"line_number":179,"context_line":"                                     call_monitor_timeout\u003dcm_timeout,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fb8cfa7_531f0307","line":176,"in_reply_to":"9fb8cfa7_1d243a5d","updated":"2019-06-14 13:57:23.000000000","message":"Thanks, sorry I don\u0027t took care about the following lines indent.","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"10cae1455c93cfbc4ed2a81de58479ed4cddb52e","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        self._check_version_cap(msg.get(\u0027version\u0027))"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            result \u003d \\"},{"line_number":177,"context_line":"                self.transport._send(self.target, msg_ctxt, msg,"},{"line_number":178,"context_line":"                                     wait_for_reply\u003dTrue, timeout\u003dtimeout,"},{"line_number":179,"context_line":"                                     call_monitor_timeout\u003dcm_timeout,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fb8cfa7_ba7e54e1","line":176,"in_reply_to":"9fb8cfa7_9ad5901e","updated":"2019-06-14 11:40:22.000000000","message":"had to do else the line is \u003e than 80 columns","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7ba5a8a30dab9dedfc06345610234d210cb347aa","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        self._check_version_cap(msg.get(\u0027version\u0027))"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            result \u003d \\"},{"line_number":177,"context_line":"                self.transport._send(self.target, msg_ctxt, msg,"},{"line_number":178,"context_line":"                                     wait_for_reply\u003dTrue, timeout\u003dtimeout,"},{"line_number":179,"context_line":"                                     call_monitor_timeout\u003dcm_timeout,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fb8cfa7_bac3b4ec","line":176,"in_reply_to":"9fb8cfa7_ba7e54e1","updated":"2019-06-14 11:47:13.000000000","message":"weird, the line is the same that the previous version, you just add a param few lines after this one.\n\nMaybe I\u0027m missing something, anyway it\u0027s not an earthquake.","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"2ce8c812da7f6f51ad0ef7f45c97145a065a6607","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        self._check_version_cap(msg.get(\u0027version\u0027))"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            result \u003d \\"},{"line_number":177,"context_line":"                self.transport._send(self.target, msg_ctxt, msg,"},{"line_number":178,"context_line":"                                     wait_for_reply\u003dTrue, timeout\u003dtimeout,"},{"line_number":179,"context_line":"                                     call_monitor_timeout\u003dcm_timeout,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fb8cfa7_1d243a5d","line":176,"in_reply_to":"9fb8cfa7_bac3b4ec","updated":"2019-06-14 12:16:24.000000000","message":"this is the problem:\n```\npep8 runtests: commands[0] | flake8\n./oslo_messaging/rpc/client.py:180:80: E501 line too long (83 \u003e 79 characters)                                          transport_options\u003dself.transport_options)\n```","commit_id":"e561e8c4a3016bef148db586859de366c7a54789"}],"oslo_messaging/tests/drivers/test_impl_rabbit.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a8a23d16dd3d47995b6b1088508321c8ee08353d","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            conn._publish(exchange_mock, \u0027msg\u0027, routing_key\u003d\u0027routing_key\u0027,"},{"line_number":213,"context_line":"                          options\u003d{\u0027my_option_key\u0027: \u0027my_option_value\u0027})"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        fake_publish.assert_called_with("},{"line_number":216,"context_line":"            \u0027msg\u0027, expiration\u003dNone,"},{"line_number":217,"context_line":"            exchange\u003dexchange_mock,"},{"line_number":218,"context_line":"            compression\u003dself.conf.oslo_messaging_rabbit.kombu_compression,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_488a2dbf","line":215,"updated":"2019-06-11 21:34:33.000000000","message":"Is there something we can assert on that will include the options? This doesn\u0027t seem to verify that they were passed through.","commit_id":"50a59fad26de0a8a2bb1c4ed31211442cc4c25f6"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"c7669fa972916773debe8df38866069c61624d43","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            conn._publish(exchange_mock, \u0027msg\u0027, routing_key\u003d\u0027routing_key\u0027,"},{"line_number":213,"context_line":"                          options\u003d{\u0027my_option_key\u0027: \u0027my_option_value\u0027})"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        fake_publish.assert_called_with("},{"line_number":216,"context_line":"            \u0027msg\u0027, expiration\u003dNone,"},{"line_number":217,"context_line":"            exchange\u003dexchange_mock,"},{"line_number":218,"context_line":"            compression\u003dself.conf.oslo_messaging_rabbit.kombu_compression,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_84e9e9b7","line":215,"in_reply_to":"9fb8cfa7_488a2dbf","updated":"2019-06-12 08:21:35.000000000","message":"I moved the test on RPC client test. \nyou are right, here does not make sense","commit_id":"50a59fad26de0a8a2bb1c4ed31211442cc4c25f6"}],"releasenotes/notes/options_parameter-f1b9c68f69c54a46.yaml":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a60caf0997b2860bfa7fcabcb51db46de4dfb3d1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Add a options parameter to the call function."},{"line_number":4,"context_line":"features:"},{"line_number":5,"context_line":"  - |"},{"line_number":6,"context_line":"    It is possible to pass optional parameters to the send function."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_f5ce5f58","line":3,"updated":"2019-06-11 17:20:39.000000000","message":"We don\u0027t want a prelude section for this. That\u0027s for calling out major changes in a project, and it doesn\u0027t appear near the other sections so it\u0027s confusing unless it stands on its own.","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a60caf0997b2860bfa7fcabcb51db46de4dfb3d1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    Add a options parameter to the call function."},{"line_number":4,"context_line":"features:"},{"line_number":5,"context_line":"  - |"},{"line_number":6,"context_line":"    It is possible to pass optional parameters to the send function."},{"line_number":7,"context_line":"    For example in RabbitMQ can be used to add more options to the publish,"},{"line_number":8,"context_line":"    as the mandatory flag."},{"line_number":9,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_f5f73f8a","line":6,"updated":"2019-06-11 17:20:39.000000000","message":"Although actually I\u0027m not sure we want a release note for this at all. We reserve release notes in Oslo for things that are user-facing and this is an internal change for oslo.messaging.","commit_id":"f083135369850c31a87e0b43c73f132a37d287f2"}]}
