)]}'
{"doc/source/admin/rabbit.rst":[{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"4d724930863e52c7dd5370c99ba5e29d16fd706b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"Introduction"},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The RabbitMq Driver is a messaging transport backend"},{"line_number":10,"context_line":"in *oslo.messaging*. The driver maps the base oslo.messaging"},{"line_number":11,"context_line":"capabilities for notification message exchange onto V3.8 of the"},{"line_number":12,"context_line":"RabbitMQ distributed message broker. More detail regarding"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_a6e6b5e7","line":9,"range":{"start_line":9,"start_character":3,"end_line":9,"end_character":13},"updated":"2019-06-24 09:43:40.000000000","message":"RabbitMQ","commit_id":"f07368081e57f8af35d714860e9243f1d7b0af1c"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"4d724930863e52c7dd5370c99ba5e29d16fd706b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Overview"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The RabbitMq driver **only** supports use for sending and receiving"},{"line_number":23,"context_line":"*oslo.messaging* notifications. Communications between"},{"line_number":24,"context_line":"the driver and RabbitMQ server backend uses the  `AMQP protocol`_"},{"line_number":25,"context_line":"that defines all APIs to request messages from a message queue or to publishes"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_86f4d188","line":22,"range":{"start_line":22,"start_character":3,"end_line":22,"end_character":13},"updated":"2019-06-24 09:43:40.000000000","message":"RabbitMQ","commit_id":"f07368081e57f8af35d714860e9243f1d7b0af1c"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"4d724930863e52c7dd5370c99ba5e29d16fd706b","unresolved":false,"context_lines":[{"line_number":34,"context_line":".. _Consumer API: https://kombu.readthedocs.io/en/stable/userguide/consumers.html"},{"line_number":35,"context_line":".. _Producer API: https://kombu.readthedocs.io/en/stable/userguide/producers.html"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Topics"},{"line_number":38,"context_line":"------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The RabbitMQ topic is an `exchange type`_."},{"line_number":41,"context_line":"In RabbitMQ messages sent to a `topic exchange`_ can\u0027t have an arbitrary"},{"line_number":42,"context_line":"routing_key - it must be a list of words, delimited by dots."},{"line_number":43,"context_line":"The words can be anything, but usually they specify some features connected"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_a6e9d580","line":40,"range":{"start_line":37,"start_character":0,"end_line":40,"end_character":42},"updated":"2019-06-24 09:43:40.000000000","message":"Here you describe only the topic exchange, but oslo uses also other exchange types as fanout [1], direct [2].\n\n\nHere there are 2 ways: \n1- describe all the exchanges types: topic, direct, fanout and headers  \n2- just link this section to the RabbitMQ website.\n\n\n1 - https://github.com/openstack/oslo.messaging/blob/master/oslo_messaging/_drivers/impl_rabbit.py#L1096\n\n2- https://github.com/openstack/oslo.messaging/blob/master/oslo_messaging/_drivers/impl_rabbit.py#L1230","commit_id":"f07368081e57f8af35d714860e9243f1d7b0af1c"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"4d724930863e52c7dd5370c99ba5e29d16fd706b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The RabbitMQ topic is an `exchange type`_."},{"line_number":41,"context_line":"In RabbitMQ messages sent to a `topic exchange`_ can\u0027t have an arbitrary"},{"line_number":42,"context_line":"routing_key - it must be a list of words, delimited by dots."},{"line_number":43,"context_line":"The words can be anything, but usually they specify some features connected"},{"line_number":44,"context_line":"to the message."},{"line_number":45,"context_line":"A few valid routing key examples: \"blue.orange.yellow\", \"cars.bikes\","},{"line_number":46,"context_line":"\"quick.orange.rabbit\"."},{"line_number":47,"context_line":"There can be as many words in the routing key as you like,"},{"line_number":48,"context_line":"up to the limit of 255 bytes.."},{"line_number":49,"context_line":"Topic is a type of exchange so RabbitMQ backend does not store the data."},{"line_number":50,"context_line":"A RabbitMQ exchange can live without any queues. No exceptions was raised if"},{"line_number":51,"context_line":"a message is send to an exchange without queue unless you use the mandatory"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_a69eb504","line":48,"range":{"start_line":41,"start_character":0,"end_line":48,"end_character":30},"updated":"2019-06-24 09:43:40.000000000","message":"That\u0027s correct, what you missed is the relation between routing-key and queues","commit_id":"f07368081e57f8af35d714860e9243f1d7b0af1c"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"4d724930863e52c7dd5370c99ba5e29d16fd706b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"\"quick.orange.rabbit\"."},{"line_number":47,"context_line":"There can be as many words in the routing key as you like,"},{"line_number":48,"context_line":"up to the limit of 255 bytes.."},{"line_number":49,"context_line":"Topic is a type of exchange so RabbitMQ backend does not store the data."},{"line_number":50,"context_line":"A RabbitMQ exchange can live without any queues. No exceptions was raised if"},{"line_number":51,"context_line":"a message is send to an exchange without queue unless you use the mandatory"},{"line_number":52,"context_line":"flag."}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_e694adea","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":72},"updated":"2019-06-24 09:43:40.000000000","message":"Exchanges, in general, don\u0027t store messages, not only the topic one. ( from AMQP protocol )","commit_id":"f07368081e57f8af35d714860e9243f1d7b0af1c"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"4d724930863e52c7dd5370c99ba5e29d16fd706b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"notification messages and the Consumer API for notification listener"},{"line_number":95,"context_line":"subscriptions."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":".. _Python client based on py-amqp: https://github.com/celery/kombu"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Source packages for the `kombu library`_ are available via PyPI."},{"line_number":100,"context_line":"Since the RabbitMQ driver is not an optional extension to *oslo.messaging*"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_468d79d1","line":97,"range":{"start_line":97,"start_character":36,"end_line":97,"end_character":67},"updated":"2019-06-24 09:43:40.000000000","message":"should be this [1] ?\n\n\n1- https://github.com/celery/py-amqp","commit_id":"f07368081e57f8af35d714860e9243f1d7b0af1c"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"4d724930863e52c7dd5370c99ba5e29d16fd706b","unresolved":false,"context_lines":[{"line_number":138,"context_line":"^^^^^^^^^^^^^^^^^^"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"kombu_compression"},{"line_number":141,"context_line":"    EXPERIMENTAL: Possible values are: gzip, bz2. If not"},{"line_number":142,"context_line":"    set compression will not be used. This option may not"},{"line_number":143,"context_line":"    be available in future versions."},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fb8cfa7_867131e1","line":141,"range":{"start_line":141,"start_character":3,"end_line":141,"end_character":17},"updated":"2019-06-24 09:43:40.000000000","message":"I think it is not experimental anymore [1]\n\n\n1- https://kombu.readthedocs.io/en/latest/_modules/kombu/compression.html","commit_id":"f07368081e57f8af35d714860e9243f1d7b0af1c"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"502317e4963001c021221012d75e2322ceab3912","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Exchange"},{"line_number":38,"context_line":"--------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"`Exchange is a RabbitMQ mechanism`_ that it designed to handle messages."},{"line_number":41,"context_line":"An exchange can:"},{"line_number":42,"context_line":"- receives messages from producers"},{"line_number":43,"context_line":"- push messages to `queues`_"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_ef6c67d1","line":40,"range":{"start_line":40,"start_character":14,"end_line":40,"end_character":24},"updated":"2019-06-25 15:01:39.000000000","message":"it is more correct:\nExchange is an AMQP mechanism design to dispatch the messages like a proxy.","commit_id":"4a3d318438e9188f514a909e6f9959038fc71e54"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"502317e4963001c021221012d75e2322ceab3912","unresolved":false,"context_lines":[{"line_number":38,"context_line":"--------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"`Exchange is a RabbitMQ mechanism`_ that it designed to handle messages."},{"line_number":41,"context_line":"An exchange can:"},{"line_number":42,"context_line":"- receives messages from producers"},{"line_number":43,"context_line":"- push messages to `queues`_"},{"line_number":44,"context_line":"An exchange need to know what to do with received messages. An exchange can:"},{"line_number":45,"context_line":"- append a message to a particular queue"},{"line_number":46,"context_line":"- append a message to many queues"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_af98afbf","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":28},"updated":"2019-06-25 15:01:39.000000000","message":"The messages are always published to exchanges. Exchanges then distribute message copies to queues using rules called bindings.","commit_id":"4a3d318438e9188f514a909e6f9959038fc71e54"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"502317e4963001c021221012d75e2322ceab3912","unresolved":false,"context_lines":[{"line_number":41,"context_line":"An exchange can:"},{"line_number":42,"context_line":"- receives messages from producers"},{"line_number":43,"context_line":"- push messages to `queues`_"},{"line_number":44,"context_line":"An exchange need to know what to do with received messages. An exchange can:"},{"line_number":45,"context_line":"- append a message to a particular queue"},{"line_number":46,"context_line":"- append a message to many queues"},{"line_number":47,"context_line":"- discard the message"},{"line_number":48,"context_line":"The rules for that ar defined by the exchange type defined by RabbitMQ:"},{"line_number":49,"context_line":"- direct"},{"line_number":50,"context_line":"- topic"},{"line_number":51,"context_line":"- headers"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_2f611faa","line":48,"range":{"start_line":44,"start_character":0,"end_line":48,"end_character":70},"updated":"2019-06-25 15:01:39.000000000","message":"AMQP protocol defines different types of exchanges:\n - direct\n - topic\n - fanout\n - headers\n\nSee here https://www.rabbitmq.com/tutorials/amqp-concepts.html#exchanges for more detail","commit_id":"4a3d318438e9188f514a909e6f9959038fc71e54"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"502317e4963001c021221012d75e2322ceab3912","unresolved":false,"context_lines":[{"line_number":51,"context_line":"- headers"},{"line_number":52,"context_line":"- fanout"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"A RabbitMQ exchange can live without any queues. No exceptions was raised if"},{"line_number":55,"context_line":"a message is send to an exchange without queue unless you use the mandatory"},{"line_number":56,"context_line":"flag."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_6f18771d","line":54,"range":{"start_line":54,"start_character":19,"end_line":54,"end_character":29},"updated":"2019-06-25 15:01:39.000000000","message":"I\u0027d say:\nAMQP exchange can work without any binding. By default, no exception is raised if the message is not redirected to any queue. \n\nWith mandatory flag RabbitMQ rasies a callback if the message is not routed to any queue.","commit_id":"4a3d318438e9188f514a909e6f9959038fc71e54"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"502317e4963001c021221012d75e2322ceab3912","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Queue"},{"line_number":65,"context_line":"-----"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"`Queue`_ is a buffer that stores a messages that are sent from the"},{"line_number":68,"context_line":"exchanges to queues."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Queues have names so that applications can reference them."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_6fc6376b","line":68,"range":{"start_line":67,"start_character":0,"end_line":68,"end_character":20},"updated":"2019-06-25 15:01:39.000000000","message":"The AMQP queue is the messages store, it can store the messages in memory or persist the messages to the disk.\n\nThe queue is bound to the exchange through one or more bindings.\n\nConsumers can consume messages from the queue.\n\nsee here: https://www.rabbitmq.com/tutorials/amqp-concepts.html#queues for more detail.","commit_id":"4a3d318438e9188f514a909e6f9959038fc71e54"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"502317e4963001c021221012d75e2322ceab3912","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Routing-Key"},{"line_number":77,"context_line":"-----------"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The routing key is a message attribute in the message header added by"},{"line_number":80,"context_line":"the producer to route the sended message. A routing-key is added by the"},{"line_number":81,"context_line":"producer. When a message is received, the exchange will try to match the"},{"line_number":82,"context_line":"message routing-key with the binding key of all the queues bound to it."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_cf92c357","line":79,"range":{"start_line":79,"start_character":45,"end_line":79,"end_character":61},"updated":"2019-06-25 15:01:39.000000000","message":"the key is part of the AMQP envelop and not headers, see for example: https://www.rabbitmq.com/releases/rabbitmq-java-client/v2.4.1/rabbitmq-java-client-javadoc-2.4.1/index.html?com/rabbitmq/client/Envelope.html","commit_id":"4a3d318438e9188f514a909e6f9959038fc71e54"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"db0f0f1bb80c6ff4a58232c509eacf006ff6f767","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The RabbitMQ Driver is a messaging transport backend"},{"line_number":10,"context_line":"in *oslo.messaging*. The driver maps the base oslo.messaging"},{"line_number":11,"context_line":"capabilities for notification message exchange onto V3.8 of the"},{"line_number":12,"context_line":"RabbitMQ distributed message broker. More detail regarding"},{"line_number":13,"context_line":"the RabbitMQ server is available from the `RabbitMQ website`__."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9fb8cfa7_772b6194","line":11,"range":{"start_line":11,"start_character":52,"end_line":11,"end_character":57},"updated":"2019-06-26 07:22:14.000000000","message":"Why only V3.8? actually, oslo can work also with other versions.","commit_id":"e9d7543812895d74edd4165b9467cc95d3296dba"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"db0f0f1bb80c6ff4a58232c509eacf006ff6f767","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The RabbitMQ driver **only** supports use for sending and receiving"},{"line_number":23,"context_line":"*oslo.messaging* notifications. Communications between"},{"line_number":24,"context_line":"the driver and RabbitMQ server backend uses the  `AMQP protocol`_"},{"line_number":25,"context_line":"that defines all APIs to request messages from a message queue or to publishes"},{"line_number":26,"context_line":"messages to an exchange. The RabbitMQ driver integrates the kombu"},{"line_number":27,"context_line":"python client for full protocol support and utilizes"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9fb8cfa7_9304e816","line":24,"range":{"start_line":24,"start_character":50,"end_line":24,"end_character":63},"updated":"2019-06-26 07:22:14.000000000","message":"AMQP 0-9-1","commit_id":"e9d7543812895d74edd4165b9467cc95d3296dba"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"db0f0f1bb80c6ff4a58232c509eacf006ff6f767","unresolved":false,"context_lines":[{"line_number":22,"context_line":"The RabbitMQ driver **only** supports use for sending and receiving"},{"line_number":23,"context_line":"*oslo.messaging* notifications. Communications between"},{"line_number":24,"context_line":"the driver and RabbitMQ server backend uses the  `AMQP protocol`_"},{"line_number":25,"context_line":"that defines all APIs to request messages from a message queue or to publishes"},{"line_number":26,"context_line":"messages to an exchange. The RabbitMQ driver integrates the kombu"},{"line_number":27,"context_line":"python client for full protocol support and utilizes"},{"line_number":28,"context_line":"the `Producer API` to publish notification"},{"line_number":29,"context_line":"messages and the `Consumer API`_ for notification listener subscriptions."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9fb8cfa7_d35ca01a","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":23},"updated":"2019-06-26 07:22:14.000000000","message":"AMQP 0-9-1 (Advanced Message Queuing Protocol) is an open application layer that allows clients applications to communicate with messaging middleware brokers in a standard way.","commit_id":"e9d7543812895d74edd4165b9467cc95d3296dba"},{"author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"change_message_id":"db0f0f1bb80c6ff4a58232c509eacf006ff6f767","unresolved":false,"context_lines":[{"line_number":45,"context_line":"- receives messages from producers"},{"line_number":46,"context_line":"- push messages to `queues`_"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"An exchange need to know what to do with received messages:"},{"line_number":49,"context_line":"- append a message to a particular queue"},{"line_number":50,"context_line":"- append a message to many queues"},{"line_number":51,"context_line":"- discard the message"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Exchanges then distribute message copies to queues using rules called bindings."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"AMQP protocol defines different types of exchanges:"},{"line_number":56,"context_line":"- direct"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9fb8cfa7_b3e24c2f","line":53,"range":{"start_line":48,"start_character":0,"end_line":53,"end_character":79},"updated":"2019-06-26 07:22:14.000000000","message":"Actually, the term \"discard\" is not correct.  \n\nWhat about:\n\"\"\"\"\nAn exchange can distribute message copies to one or many queues using rules called bindings.\n\nAn exchange can work without any binding. No exception is\nraised if the message is not redirected to any queue, unless the mandatory flag is used, see: https://www.rabbitmq.com/reliability.html#routing\n\n\n\"\"\"","commit_id":"e9d7543812895d74edd4165b9467cc95d3296dba"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"580145ea23aa51d975732d517b93e6159d55d82b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"The RabbitMQ driver **only** supports use for sending and receiving"},{"line_number":23,"context_line":"*oslo.messaging* notifications. Communications between"},{"line_number":24,"context_line":"the driver and RabbitMQ server backend uses the  `AMQP 0-9-1 protocol`_"},{"line_number":25,"context_line":"(Advanced Message Queuing Protocol) is an open application layer that allows"},{"line_number":26,"context_line":"clients applications to communicate with messaging middleware brokers in a"},{"line_number":27,"context_line":"standard way. "},{"line_number":28,"context_line":"AMQP defines all APIs to request messages from a message queue or to publishes"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7faddb67_da4767bc","line":25,"range":{"start_line":25,"start_character":35,"end_line":25,"end_character":38},"updated":"2019-07-04 13:05:30.000000000","message":", which is","commit_id":"4c220b9b2a44e4d3f300c12c87e8add705e07aef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"580145ea23aa51d975732d517b93e6159d55d82b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"the driver and RabbitMQ server backend uses the  `AMQP 0-9-1 protocol`_"},{"line_number":25,"context_line":"(Advanced Message Queuing Protocol) is an open application layer that allows"},{"line_number":26,"context_line":"clients applications to communicate with messaging middleware brokers in a"},{"line_number":27,"context_line":"standard way. "},{"line_number":28,"context_line":"AMQP defines all APIs to request messages from a message queue or to publishes"},{"line_number":29,"context_line":"messages to an exchange. The RabbitMQ driver integrates the kombu"},{"line_number":30,"context_line":"python client for full protocol support and utilizes"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7faddb67_1a3e5f29","line":27,"range":{"start_line":27,"start_character":13,"end_line":27,"end_character":14},"updated":"2019-07-04 13:05:30.000000000","message":"x","commit_id":"4c220b9b2a44e4d3f300c12c87e8add705e07aef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"580145ea23aa51d975732d517b93e6159d55d82b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Exchange"},{"line_number":41,"context_line":"--------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"`Exchange is a AMQP mechanism`_ that it designed to dispatch the messages like a proxy.."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Messages are always published to exchanges."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"7faddb67_5a0db78e","line":43,"range":{"start_line":43,"start_character":87,"end_line":43,"end_character":88},"updated":"2019-07-04 13:05:30.000000000","message":"x","commit_id":"4c220b9b2a44e4d3f300c12c87e8add705e07aef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"580145ea23aa51d975732d517b93e6159d55d82b","unresolved":false,"context_lines":[{"line_number":234,"context_line":"Publishing Options"},{"line_number":235,"context_line":"^^^^^^^^^^^^^^^^^^"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"kombu_compression"},{"line_number":238,"context_line":"    Possible values are: gzip, bz2."},{"line_number":239,"context_line":"    If not set compression will not be used."},{"line_number":240,"context_line":"    This option may not be available in future versions."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"kombu_missing_consumer_retry_timeout"},{"line_number":243,"context_line":"    How long to wait a missing client before abandoning to"},{"line_number":244,"context_line":"    send it its replies. This value should not be longer"},{"line_number":245,"context_line":"    than rpc_response_timeout. Default set to 60 seconds"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Consuming Options"},{"line_number":248,"context_line":"^^^^^^^^^^^^^^^^^"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"rabbit_ha_queues"},{"line_number":251,"context_line":"    Try to use HA queues in RabbitMQ (x-ha-policy: all)."},{"line_number":252,"context_line":"    If you change this option, you must wipe the RabbitMQ"},{"line_number":253,"context_line":"    database. In RabbitMQ 3.0, queue mirroring is no longer"},{"line_number":254,"context_line":"    controlled by the x-ha-policy argument when declaring a"},{"line_number":255,"context_line":"    queue. If you just want to make sure that all queues (except"},{"line_number":256,"context_line":"    those with auto-generated names) are mirrored across all"},{"line_number":257,"context_line":"    nodes, run:"},{"line_number":258,"context_line":"    rabbitmqctl set_policy HA \u0027^(?!amq\\.).*\u0027"},{"line_number":259,"context_line":"    \u0027{\"ha-mode\": \"all\"}\u0027"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"rabbit_transient_queues_ttl"},{"line_number":262,"context_line":"    Positive integer representing duration in seconds for"},{"line_number":263,"context_line":"    queue TTL (x-expires). Queues which are unused for the"},{"line_number":264,"context_line":"    duration of the TTL are automatically deleted. The"},{"line_number":265,"context_line":"    parameter affects only reply and fanout queues."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Connection Options"},{"line_number":269,"context_line":"^^^^^^^^^^^^^^^^^^"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"kombu_reconnect_delay"},{"line_number":272,"context_line":"    How long to wait before reconnecting in response to an"},{"line_number":273,"context_line":"    AMQP consumer cancel notification."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"kombu_failover_strategy\u0027,"},{"line_number":276,"context_line":"    Determines how the next RabbitMQ node is chosen in case"},{"line_number":277,"context_line":"    the one we are currently connected to becomes"},{"line_number":278,"context_line":"    unavailable. Takes effect only if more than one"},{"line_number":279,"context_line":"    RabbitMQ node is provided in config. Valid choices are"},{"line_number":280,"context_line":"    \u0027round-robin\u0027, \u0027shuffle\u0027. Default set to \u0027round-robin\u0027."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"rabbit_retry_interval"},{"line_number":283,"context_line":"    How frequently to retry connecting with RabbitMQ. Default set to 1 second."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"rabbit_retry_backoff,"},{"line_number":286,"context_line":"    How long to backoff for between retries when connecting to RabbitMQ."},{"line_number":287,"context_line":"    By how much the interval is increased for each retry. Default set to 2."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"rabbit_interval_max"},{"line_number":290,"context_line":"    Maximum interval of RabbitMQ connection sleep between retries."},{"line_number":291,"context_line":"    Default is 30 seconds."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"rabbit_qos_prefetch_count"},{"line_number":294,"context_line":"    Specifies the number of messages to prefetch. Setting to"},{"line_number":295,"context_line":"    zero allows unlimited messages. Default set to 0."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"Heartbeat Options"},{"line_number":298,"context_line":"^^^^^^^^^^^^^^^^^"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"heartbeat_timeout_threshold"},{"line_number":301,"context_line":"    Number of seconds after which the Rabbit broker is"},{"line_number":302,"context_line":"    considered down if heartbeat\u0027s keep-alive fails"},{"line_number":303,"context_line":"    (0 disables heartbeat). Default is 60 seconds."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"heartbeat_rate"},{"line_number":306,"context_line":"    How often times during the heartbeat_timeout_threshold"},{"line_number":307,"context_line":"    we check the heartbeat. Default is 2."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Security Options"},{"line_number":310,"context_line":"^^^^^^^^^^^^^^^^"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"ssl"},{"line_number":313,"context_line":"    Connect over SSL."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"ssl_version"},{"line_number":316,"context_line":"    SSL version to use (valid only if SSL enabled)."},{"line_number":317,"context_line":"    Valid values are TLSv1 and SSLv23. SSLv2, SSLv3,"},{"line_number":318,"context_line":"    TLSv1_1, and TLSv1_2 may be available on some distributions."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"ssl_key_file"},{"line_number":321,"context_line":"    SSL key file (valid only if SSL enabled)."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"ssl_cert_file"},{"line_number":324,"context_line":"    SSL certification authority file (valid only if SSL enabled)."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"rabbit_login_method"},{"line_number":327,"context_line":"    The RabbitMQ login method. Choices are \u0027PLAIN\u0027, \u0027AMQPLAIN\u0027,"},{"line_number":328,"context_line":"    \u0027RABBIT-CR-DEMO\u0027. Default set to \u0027AMQPLAIN\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7faddb67_da7527fc","line":328,"range":{"start_line":237,"start_character":0,"end_line":328,"end_character":47},"updated":"2019-07-04 13:05:30.000000000","message":"We should use oslo.config roles for all of these","commit_id":"4c220b9b2a44e4d3f300c12c87e8add705e07aef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0cf537427ac1b1edabea0f07e3eabadd8053fa65","unresolved":false,"context_lines":[{"line_number":234,"context_line":"Publishing Options"},{"line_number":235,"context_line":"^^^^^^^^^^^^^^^^^^"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"kombu_compression"},{"line_number":238,"context_line":"    Possible values are: gzip, bz2."},{"line_number":239,"context_line":"    If not set compression will not be used."},{"line_number":240,"context_line":"    This option may not be available in future versions."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"kombu_missing_consumer_retry_timeout"},{"line_number":243,"context_line":"    How long to wait a missing client before abandoning to"},{"line_number":244,"context_line":"    send it its replies. This value should not be longer"},{"line_number":245,"context_line":"    than rpc_response_timeout. Default set to 60 seconds"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Consuming Options"},{"line_number":248,"context_line":"^^^^^^^^^^^^^^^^^"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"rabbit_ha_queues"},{"line_number":251,"context_line":"    Try to use HA queues in RabbitMQ (x-ha-policy: all)."},{"line_number":252,"context_line":"    If you change this option, you must wipe the RabbitMQ"},{"line_number":253,"context_line":"    database. In RabbitMQ 3.0, queue mirroring is no longer"},{"line_number":254,"context_line":"    controlled by the x-ha-policy argument when declaring a"},{"line_number":255,"context_line":"    queue. If you just want to make sure that all queues (except"},{"line_number":256,"context_line":"    those with auto-generated names) are mirrored across all"},{"line_number":257,"context_line":"    nodes, run:"},{"line_number":258,"context_line":"    rabbitmqctl set_policy HA \u0027^(?!amq\\.).*\u0027"},{"line_number":259,"context_line":"    \u0027{\"ha-mode\": \"all\"}\u0027"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"rabbit_transient_queues_ttl"},{"line_number":262,"context_line":"    Positive integer representing duration in seconds for"},{"line_number":263,"context_line":"    queue TTL (x-expires). Queues which are unused for the"},{"line_number":264,"context_line":"    duration of the TTL are automatically deleted. The"},{"line_number":265,"context_line":"    parameter affects only reply and fanout queues."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Connection Options"},{"line_number":269,"context_line":"^^^^^^^^^^^^^^^^^^"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"kombu_reconnect_delay"},{"line_number":272,"context_line":"    How long to wait before reconnecting in response to an"},{"line_number":273,"context_line":"    AMQP consumer cancel notification."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"kombu_failover_strategy\u0027,"},{"line_number":276,"context_line":"    Determines how the next RabbitMQ node is chosen in case"},{"line_number":277,"context_line":"    the one we are currently connected to becomes"},{"line_number":278,"context_line":"    unavailable. Takes effect only if more than one"},{"line_number":279,"context_line":"    RabbitMQ node is provided in config. Valid choices are"},{"line_number":280,"context_line":"    \u0027round-robin\u0027, \u0027shuffle\u0027. Default set to \u0027round-robin\u0027."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"rabbit_retry_interval"},{"line_number":283,"context_line":"    How frequently to retry connecting with RabbitMQ. Default set to 1 second."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"rabbit_retry_backoff,"},{"line_number":286,"context_line":"    How long to backoff for between retries when connecting to RabbitMQ."},{"line_number":287,"context_line":"    By how much the interval is increased for each retry. Default set to 2."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"rabbit_interval_max"},{"line_number":290,"context_line":"    Maximum interval of RabbitMQ connection sleep between retries."},{"line_number":291,"context_line":"    Default is 30 seconds."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"rabbit_qos_prefetch_count"},{"line_number":294,"context_line":"    Specifies the number of messages to prefetch. Setting to"},{"line_number":295,"context_line":"    zero allows unlimited messages. Default set to 0."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"Heartbeat Options"},{"line_number":298,"context_line":"^^^^^^^^^^^^^^^^^"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"heartbeat_timeout_threshold"},{"line_number":301,"context_line":"    Number of seconds after which the Rabbit broker is"},{"line_number":302,"context_line":"    considered down if heartbeat\u0027s keep-alive fails"},{"line_number":303,"context_line":"    (0 disables heartbeat). Default is 60 seconds."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"heartbeat_rate"},{"line_number":306,"context_line":"    How often times during the heartbeat_timeout_threshold"},{"line_number":307,"context_line":"    we check the heartbeat. Default is 2."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Security Options"},{"line_number":310,"context_line":"^^^^^^^^^^^^^^^^"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"ssl"},{"line_number":313,"context_line":"    Connect over SSL."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"ssl_version"},{"line_number":316,"context_line":"    SSL version to use (valid only if SSL enabled)."},{"line_number":317,"context_line":"    Valid values are TLSv1 and SSLv23. SSLv2, SSLv3,"},{"line_number":318,"context_line":"    TLSv1_1, and TLSv1_2 may be available on some distributions."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"ssl_key_file"},{"line_number":321,"context_line":"    SSL key file (valid only if SSL enabled)."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"ssl_cert_file"},{"line_number":324,"context_line":"    SSL certification authority file (valid only if SSL enabled)."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"rabbit_login_method"},{"line_number":327,"context_line":"    The RabbitMQ login method. Choices are \u0027PLAIN\u0027, \u0027AMQPLAIN\u0027,"},{"line_number":328,"context_line":"    \u0027RABBIT-CR-DEMO\u0027. Default set to \u0027AMQPLAIN\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7faddb67_25f8cfc2","line":328,"range":{"start_line":237,"start_character":0,"end_line":328,"end_character":47},"in_reply_to":"7faddb67_89bbe7e3","updated":"2019-07-05 09:25:43.000000000","message":"I was suggesting you do something like this instead:\n\n  https://review.opendev.org/#/c/669180/1/doc/source/admin/AMQP1.0.rst@346\n\nDoes that make sense? I think it would help reduce duplication of effort at least","commit_id":"4c220b9b2a44e4d3f300c12c87e8add705e07aef"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"380ea6079bb2f5ba0a4952ba6fe6c434f6facd6b","unresolved":false,"context_lines":[{"line_number":234,"context_line":"Publishing Options"},{"line_number":235,"context_line":"^^^^^^^^^^^^^^^^^^"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"kombu_compression"},{"line_number":238,"context_line":"    Possible values are: gzip, bz2."},{"line_number":239,"context_line":"    If not set compression will not be used."},{"line_number":240,"context_line":"    This option may not be available in future versions."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"kombu_missing_consumer_retry_timeout"},{"line_number":243,"context_line":"    How long to wait a missing client before abandoning to"},{"line_number":244,"context_line":"    send it its replies. This value should not be longer"},{"line_number":245,"context_line":"    than rpc_response_timeout. Default set to 60 seconds"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Consuming Options"},{"line_number":248,"context_line":"^^^^^^^^^^^^^^^^^"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"rabbit_ha_queues"},{"line_number":251,"context_line":"    Try to use HA queues in RabbitMQ (x-ha-policy: all)."},{"line_number":252,"context_line":"    If you change this option, you must wipe the RabbitMQ"},{"line_number":253,"context_line":"    database. In RabbitMQ 3.0, queue mirroring is no longer"},{"line_number":254,"context_line":"    controlled by the x-ha-policy argument when declaring a"},{"line_number":255,"context_line":"    queue. If you just want to make sure that all queues (except"},{"line_number":256,"context_line":"    those with auto-generated names) are mirrored across all"},{"line_number":257,"context_line":"    nodes, run:"},{"line_number":258,"context_line":"    rabbitmqctl set_policy HA \u0027^(?!amq\\.).*\u0027"},{"line_number":259,"context_line":"    \u0027{\"ha-mode\": \"all\"}\u0027"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"rabbit_transient_queues_ttl"},{"line_number":262,"context_line":"    Positive integer representing duration in seconds for"},{"line_number":263,"context_line":"    queue TTL (x-expires). Queues which are unused for the"},{"line_number":264,"context_line":"    duration of the TTL are automatically deleted. The"},{"line_number":265,"context_line":"    parameter affects only reply and fanout queues."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Connection Options"},{"line_number":269,"context_line":"^^^^^^^^^^^^^^^^^^"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"kombu_reconnect_delay"},{"line_number":272,"context_line":"    How long to wait before reconnecting in response to an"},{"line_number":273,"context_line":"    AMQP consumer cancel notification."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"kombu_failover_strategy\u0027,"},{"line_number":276,"context_line":"    Determines how the next RabbitMQ node is chosen in case"},{"line_number":277,"context_line":"    the one we are currently connected to becomes"},{"line_number":278,"context_line":"    unavailable. Takes effect only if more than one"},{"line_number":279,"context_line":"    RabbitMQ node is provided in config. Valid choices are"},{"line_number":280,"context_line":"    \u0027round-robin\u0027, \u0027shuffle\u0027. Default set to \u0027round-robin\u0027."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"rabbit_retry_interval"},{"line_number":283,"context_line":"    How frequently to retry connecting with RabbitMQ. Default set to 1 second."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"rabbit_retry_backoff,"},{"line_number":286,"context_line":"    How long to backoff for between retries when connecting to RabbitMQ."},{"line_number":287,"context_line":"    By how much the interval is increased for each retry. Default set to 2."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"rabbit_interval_max"},{"line_number":290,"context_line":"    Maximum interval of RabbitMQ connection sleep between retries."},{"line_number":291,"context_line":"    Default is 30 seconds."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"rabbit_qos_prefetch_count"},{"line_number":294,"context_line":"    Specifies the number of messages to prefetch. Setting to"},{"line_number":295,"context_line":"    zero allows unlimited messages. Default set to 0."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"Heartbeat Options"},{"line_number":298,"context_line":"^^^^^^^^^^^^^^^^^"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"heartbeat_timeout_threshold"},{"line_number":301,"context_line":"    Number of seconds after which the Rabbit broker is"},{"line_number":302,"context_line":"    considered down if heartbeat\u0027s keep-alive fails"},{"line_number":303,"context_line":"    (0 disables heartbeat). Default is 60 seconds."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"heartbeat_rate"},{"line_number":306,"context_line":"    How often times during the heartbeat_timeout_threshold"},{"line_number":307,"context_line":"    we check the heartbeat. Default is 2."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Security Options"},{"line_number":310,"context_line":"^^^^^^^^^^^^^^^^"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"ssl"},{"line_number":313,"context_line":"    Connect over SSL."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"ssl_version"},{"line_number":316,"context_line":"    SSL version to use (valid only if SSL enabled)."},{"line_number":317,"context_line":"    Valid values are TLSv1 and SSLv23. SSLv2, SSLv3,"},{"line_number":318,"context_line":"    TLSv1_1, and TLSv1_2 may be available on some distributions."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"ssl_key_file"},{"line_number":321,"context_line":"    SSL key file (valid only if SSL enabled)."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"ssl_cert_file"},{"line_number":324,"context_line":"    SSL certification authority file (valid only if SSL enabled)."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"rabbit_login_method"},{"line_number":327,"context_line":"    The RabbitMQ login method. Choices are \u0027PLAIN\u0027, \u0027AMQPLAIN\u0027,"},{"line_number":328,"context_line":"    \u0027RABBIT-CR-DEMO\u0027. Default set to \u0027AMQPLAIN\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7faddb67_89bbe7e3","line":328,"range":{"start_line":237,"start_character":0,"end_line":328,"end_character":47},"in_reply_to":"7faddb67_da7527fc","updated":"2019-07-04 19:03:14.000000000","message":"Hi Stephen,\n\nThanks for your review :)\n\nI\u0027m not sure to understand your comment, what do you mean here? \n\nYou want I remove this part?\nYou want I reword this part?\nYou want I adapt pieces of this part?\n\nPlease, can you give me more details about your thinking and comment.\n\nThanks.","commit_id":"4c220b9b2a44e4d3f300c12c87e8add705e07aef"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":1,"context_line":"--------------------------------"},{"line_number":2,"context_line":"RabbitMq Driver Deployment Guide"},{"line_number":3,"context_line":"--------------------------------"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":"Introduction"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_ca13070d","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":32},"updated":"2019-07-05 12:01:09.000000000","message":"This is a nit, but any chance you could change these header styles as I\u0027ve done in [1]? If not, that\u0027s okay - I can tackle it after :)\n\n[1] https://review.opendev.org/#/c/669180/1/doc/source/admin/AMQP1.0.rst","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The RabbitMQ driver **only** supports use for sending and receiving"},{"line_number":23,"context_line":"*oslo.messaging* notifications. Communications between"},{"line_number":24,"context_line":"the driver and RabbitMQ server backend uses the  `AMQP 0-9-1 protocol`_"},{"line_number":25,"context_line":"(Advanced Message Queuing Protocol) which is an open application layer"},{"line_number":26,"context_line":"that allows clients applications to communicate with messaging middleware"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_6af8d3c3","line":23,"range":{"start_line":23,"start_character":31,"end_line":23,"end_character":32},"updated":"2019-07-05 12:01:09.000000000","message":"It does not support (what?).","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":28,"context_line":"AMQP defines all APIs to request messages from a message queue or to publishes"},{"line_number":29,"context_line":"messages to an exchange. The RabbitMQ driver integrates the kombu"},{"line_number":30,"context_line":"python client for full protocol support and utilizes"},{"line_number":31,"context_line":"the `Producer API` to publish notification"},{"line_number":32,"context_line":"messages and the `Consumer API`_ for notification listener subscriptions."},{"line_number":33,"context_line":"The driver is able to work with a single instance of a RabbitMQ server or"},{"line_number":34,"context_line":"a clustered RabbitMQ server deployment."}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_4aff17aa","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":18},"updated":"2019-07-05 12:01:09.000000000","message":"Missing _ after this. You could use the anonymous style links in this section too, if you liked","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Exchange"},{"line_number":41,"context_line":"--------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"`Exchange is a AMQP mechanism`_ that it designed to dispatch the messages like a proxy."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Messages are always published to exchanges."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_ea2da346","line":43,"range":{"start_line":43,"start_character":79,"end_line":43,"end_character":87},"updated":"2019-07-05 12:01:09.000000000","message":"wrapping","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Messages are always published to exchanges."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"An exchange can:"},{"line_number":48,"context_line":"- receives messages from producers"},{"line_number":49,"context_line":"- push messages to `queues`_"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_0a335fad","line":47,"updated":"2019-07-05 12:01:09.000000000","message":"Need a newline after this or it won\u0027t render properly","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Exchanges can distribute message copies to one or many queues using rules"},{"line_number":52,"context_line":"called bindings."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"AMQP protocol defines different types of exchanges:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_aa27ab64","line":53,"updated":"2019-07-05 12:01:09.000000000","message":"Drop two of these lines","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"AMQP protocol defines different types of exchanges:"},{"line_number":57,"context_line":"- direct"},{"line_number":58,"context_line":"- topic"},{"line_number":59,"context_line":"- headers"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_ca2c6749","line":56,"updated":"2019-07-05 12:01:09.000000000","message":"Newline needed under here","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Exchange types"},{"line_number":103,"context_line":"--------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Direct"},{"line_number":106,"context_line":"^^^^^^"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"A direct exchange is an exchange which route messages to queues based on"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_6a945345","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":6},"updated":"2019-07-05 12:01:09.000000000","message":"``direct``? (the rest are lower case)","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":110,"context_line":"correspond to the routing-key."},{"line_number":111,"context_line":"*direct* is a type of exchange so RabbitMQ backend does not store the data."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Topic"},{"line_number":114,"context_line":"^^^^^"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The RabbitMQ topic is an `exchange type`_."}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_8a918f55","line":113,"range":{"start_line":113,"start_character":0,"end_line":113,"end_character":5},"updated":"2019-07-05 12:01:09.000000000","message":"``topic``? (the rest are lower case)","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":129,"context_line":".. _exchange type: https://www.rabbitmq.com/tutorials/tutorial-three-python.html"},{"line_number":130,"context_line":".. _topic exchange: https://www.rabbitmq.com/tutorials/tutorial-five-python.html"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"fanout"},{"line_number":133,"context_line":"^^^^^^"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The fanout exchange will broadcasts all messages it receives to all the queues"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_2a9e5b63","line":132,"range":{"start_line":132,"start_character":0,"end_line":132,"end_character":6},"updated":"2019-07-05 12:01:09.000000000","message":"``fanout`` (assuming this is this the name of a setting?)","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":206,"context_line":"Transport URL Enable"},{"line_number":207,"context_line":"--------------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"In *oslo.messaging*, the transport_url parameters define the OpenStack service"},{"line_number":210,"context_line":"backends for RPC and Notify. The url is of the form::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    transport://user:pass@host1:port[,hostN:portN]/virtual_host"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_8ae3cf05","line":209,"range":{"start_line":209,"start_character":25,"end_line":209,"end_character":38},"updated":"2019-07-05 12:01:09.000000000","message":"``transport_url``","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":206,"context_line":"Transport URL Enable"},{"line_number":207,"context_line":"--------------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"In *oslo.messaging*, the transport_url parameters define the OpenStack service"},{"line_number":210,"context_line":"backends for RPC and Notify. The url is of the form::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    transport://user:pass@host1:port[,hostN:portN]/virtual_host"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_4aedd7ed","line":209,"range":{"start_line":209,"start_character":50,"end_line":209,"end_character":56},"updated":"2019-07-05 12:01:09.000000000","message":"defines","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":206,"context_line":"Transport URL Enable"},{"line_number":207,"context_line":"--------------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"In *oslo.messaging*, the transport_url parameters define the OpenStack service"},{"line_number":210,"context_line":"backends for RPC and Notify. The url is of the form::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    transport://user:pass@host1:port[,hostN:portN]/virtual_host"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_2af09bc9","line":209,"range":{"start_line":209,"start_character":39,"end_line":209,"end_character":49},"updated":"2019-07-05 12:01:09.000000000","message":"parameter","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":207,"context_line":"--------------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"In *oslo.messaging*, the transport_url parameters define the OpenStack service"},{"line_number":210,"context_line":"backends for RPC and Notify. The url is of the form::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    transport://user:pass@host1:port[,hostN:portN]/virtual_host"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_6ae69319","line":210,"range":{"start_line":210,"start_character":33,"end_line":210,"end_character":36},"updated":"2019-07-05 12:01:09.000000000","message":"URL","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":207,"context_line":"--------------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"In *oslo.messaging*, the transport_url parameters define the OpenStack service"},{"line_number":210,"context_line":"backends for RPC and Notify. The url is of the form::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    transport://user:pass@host1:port[,hostN:portN]/virtual_host"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_aab56bf0","line":210,"range":{"start_line":210,"start_character":21,"end_line":210,"end_character":27},"updated":"2019-07-05 12:01:09.000000000","message":"notifications?","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    transport://user:pass@host1:port[,hostN:portN]/virtual_host"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Where the transport value specifies the rpc or notification backend as"},{"line_number":215,"context_line":"one of ``amqp``, ``rabbit``, ``kafka``, etc. To specify and enable the"},{"line_number":216,"context_line":"RabbitMQ driver for notifications, in the section"},{"line_number":217,"context_line":"``[oslo_messaging_notifications]`` of the service configuration file,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_caba27dd","line":214,"range":{"start_line":214,"start_character":40,"end_line":214,"end_character":43},"updated":"2019-07-05 12:01:09.000000000","message":"RPC","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  transport_url \u003d rabbit://username:password@kafkahostname:9092"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Note, that if a ``transport_url`` parameter is not specified in the"},{"line_number":224,"context_line":"``[oslo_messaging_notifications]`` section, the ``[DEFAULT]``"},{"line_number":225,"context_line":"transport_url will be used for both RPC and Notify backends."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Driver Options"},{"line_number":228,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_cae1c700","line":225,"range":{"start_line":224,"start_character":49,"end_line":225,"end_character":13},"updated":"2019-07-05 12:01:09.000000000","message":"``[DEFAULT] transport_url`` option","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3183a589c1cc7f671b1cf4fae8aac4f399955743","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"It is recommended that the default configuration options provided by"},{"line_number":231,"context_line":"the RabbitMQ driver be used. The configuration options can be modified"},{"line_number":232,"context_line":"in the ``oslo_messaging_rabbit`` section of the service configuration file."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Publishing Options"},{"line_number":235,"context_line":"^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7faddb67_4a18771c","line":232,"range":{"start_line":232,"start_character":7,"end_line":232,"end_character":32},"updated":"2019-07-05 12:01:09.000000000","message":":oslo.config:group:`oslo_messaging_rabbit`","commit_id":"67499d5de8c74e218e9de4f1c934c4d049ce674e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f7104f6253be7b0408308e18386bc172c1611ab","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Exchange types"},{"line_number":102,"context_line":"~~~~~~~~~~~~~~"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"`direct`"},{"line_number":105,"context_line":"^^^^^^^^"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"A direct exchange is an exchange which route messages to queues based on"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_737d2e1b","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":8},"updated":"2019-07-05 15:29:06.000000000","message":"``direct``","commit_id":"0be2550cee7e8a2a8bb84133962d75bc58e8735c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f7104f6253be7b0408308e18386bc172c1611ab","unresolved":false,"context_lines":[{"line_number":214,"context_line":"``[oslo_messaging_notifications]`` of the service configuration file,"},{"line_number":215,"context_line":"specify the ``transport_url`` parameter::"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"  [oslo_messaging_notifications]"},{"line_number":218,"context_line":"  transport_url \u003d rabbit://username:password@kafkahostname:9092"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Note, that if a ``transport_url`` parameter is not specified in the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_1394fa36","line":217,"range":{"start_line":217,"start_character":0,"end_line":217,"end_character":2},"updated":"2019-07-05 15:29:06.000000000","message":"nit: can you indent this by two more spaces so it\u0027s the same as above?","commit_id":"0be2550cee7e8a2a8bb84133962d75bc58e8735c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f7104f6253be7b0408308e18386bc172c1611ab","unresolved":false,"context_lines":[{"line_number":217,"context_line":"  [oslo_messaging_notifications]"},{"line_number":218,"context_line":"  transport_url \u003d rabbit://username:password@kafkahostname:9092"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Note, that if a ``transport_url`` parameter is not specified in the"},{"line_number":221,"context_line":"``[oslo_messaging_notifications]`` section, the ``[DEFAULT] transport_url``"},{"line_number":222,"context_line":"option will be used for both RPC and notifications backends."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Driver Options"},{"line_number":225,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_d39d025a","line":222,"range":{"start_line":220,"start_character":0,"end_line":222,"end_character":60},"updated":"2019-07-05 15:29:06.000000000","message":"I wonder if this should be a note directive?","commit_id":"0be2550cee7e8a2a8bb84133962d75bc58e8735c"}]}
